Így álltak a csillagok…

Az elmúlt két hétben érdekes problémával küzdöttünk. Egyik napról a másikra szó szerint napi több ezer command timeoutot kapott az alkalmazásunk.

Mivel mi nem változtattunk rajta már egy ideje, ezért a környezetre gyanakodtunk. Az infrastruktúra csoport meg ránk. Hiába adtunk nekik application logokat, hogy “ni, itt van egy rakás timeout”, hiába adtunk nekik profiler logokat, hogy “ehol meg ehol lehet látni egy rakás lock timeoutot”, nagyon ellenálltak.

Kiszemeltek egy tárolt eljárást, hogy ez okoz mindenféle lockokat, és azt kellene optimalizálnunk. Nem mondom, hogy tökéletes az az eljárás, mert majdnem mindent lehetne még tovább optimalizálni, hegyezgetni az adott feladatra.

De ha egyik nap tökéletes válaszokkal fut valami, majd másnap éppen hogy bukdácsol, és örüljünk, hogy visszaad valamit, akkor az lehet, hogy nem kizárólag az adott eljárás hibája.

Tehát néztünk mindent, CPU, memória, index fragmentation, page telítettség, execution planek, disk IO… ami csak eszünkbe jutott az adatbázissal magával kapcsolatban és volt hozzáférésünk.

Infrastruktúra oldalról néztek NUMA-t, párhuzamosítást, disk performance-t, networköt, meg csak ők tudják, hogy még mit.

Pár nap után már teljesen holtpontra jutottunk, mert szerintünk infrastruktúra, szerintük alkalmazás probléma, de akkor már a fél világ rajta volt mindenféle napi kétszeri status callon, hogy beszámoljunk, mire jutottunk.

Nagyjából egy hét után egyik napról a másikra ahogy jött, úgy meg is szűnt a probléma. Mi ugyanúgy nem tettünk semmit, ahogy akkor sem, mikor először jelentkezett. Az infrastruktúra csoport szintén azt mondja, hogy nem csinált semmit. Van egy olyan sanda gyanúm, hogy valamelyikünk nem mond igazat.

Az ilyenekre szoktuk azt mondani, hogy “így álltak a csillagok”.