Om loggar kunde tala
Ponera att du har en anslutningspool till en resurs A. Ponera vidare att anrop till resurs A med nödvändighet medför lika långa anrop till resurs B. Ponera vidare att anslutningspoolen för resurs B är mindre än den för resurs A. Detta kan vara acceptabelt, trådar/anslutningar för A kommer suboptimalt att låsas upp för att enbart vänta på B, men det kan ge önskat beteende. Syftet kan till exempel vara att dölja korta belastningstoppar genom att direkt besvara (om än inte returnera hela svaret) för yttre anrop.
Ponera dock vidare att protokollet mellan A och B, låt oss kalla det AJP, har en keepalivedel. När en A-tråd är klar med ett B-anrop stannar alltså kopplingen AiBj, för den behövs ju ändå snart igen. ICKE bra. Om A-poolens storlek överstiger B-poolens storlek med n och det finns mer än n lediga trådar i A-poolen finns det alltså, enligt lådprincipen, minst en ledig B-anslutning. Däremot kan ett yttre anrop på A-nivå välja vilken som helst av de lediga A-trådarna, där någon mycket väl kan sakna aktiv AB-koppling. Alla B-anslutningar är upptagna, men alla B-trådar är det inte, eftersom några av anslutningarna är kopplade till (andra) lediga A-trådar. Ingenstans tar resurser slut, så direkta varningar kan utebli. Däremot kraschar prestanda. Kort senare, om anrop fortsätter att strömma in, blir praktiskt taget alla A-trådar aktiva. Visserligen kommer då även de lediga A-trådar som faktiskt har B-anslutningar att tas i anspråk, men det blir ett rent lotteri om man får en sådan anslutning eller ej. Om inte får man snällt invänta timeout och nytt försök.
Disclaimer
AJP, mod_jk och JBoss heter inte alls något annat i verkligheten. Detta inlägg är baserat på en sann historia. Hur märkligt det än kan låta så är det jag som kommit fram till detta (i det specifika fallet), utan att någonsin ha beskyllts för att vara sysadmin. Det är också rent ut sagt dumt att det på många ställen står att JBoss Tomcat borde ha standardvärdet 200 trådar, när det visar sig att det var 40, ända fram till en mindre commit i oktober 2008 (JBoss Portal 2.6, med bundlad JBoss AS, släpptes långt före detta).
Men vi är i alla fall av med det potentiella driftproblemet.
Jag har presenterat min riksdagskandidatur också och sett Vaksalaskolans matsal inifrån. Arla uppmanar till fildelning med EU-pengar.
Inga kommentarer:
Skicka en kommentar