Szeptember 22-én reggel a torun.ai csak vánszorgott. Automatizált böngészők farmja, háromnegyed óra alatt több mint kétezer címről, egyenként kérte le nyilvános oldalainkat, és a legrosszabb percben ez nagyjából másodpercenként három oldalt jelentett. Egy webhelynek ezt meg sem kellene éreznie. A miénk megérezte: a legforgalmasabb időszakban a kérések több mint negyede harminc másodpercnél tovább tartott, és több száz látogató feladta, mielőtt az oldal megérkezett.
Nem az a terhelés, amire gondoltunk
A kézenfekvő gyanúsítottak a robot és a processzor voltak. Egyik sem igazolódott. Amikor ugyanazt a másodpercenkénti három oldalt lejátszottuk a webhely egy másolatán, kevesebb mint egy percig bírta, aztán semmit sem fejezett be. A processzorhasználat 60 százalékról 1-re esett, miközben a szálak száma 12-ről 166-ra nőtt. A túlterhelt szerver többet dolgozik; ez várakozott.
Oda-vissza út minden szóért
A gyorsítótár-szerver megfigyelése egyetlen oldal alatt megmutatta, mire vár. Egy oldal 585 parancsot küldött neki, és ebből 428 ugyanaz a lekérdezés és annak frissítése volt, újra meg újra: egy fordítási tábla, amely a mi webhelyünkön üres. Az oldal minden lefordított szövege, és egy oldalon több száz van, újra lekérte, és minden kérés addig foglalt egy szálat, amíg meg nem jött a válasz. Másodpercenként három oldalnál elfogytak a szálak, és minden mögéjük sorolt be.
A javítás és egy korlát
Ezeket a lekérdezéseket most egy-egy percig a memóriából szolgáljuk ki, lejáratkor egyszer kérjük le újra, és azon a szerveren töröljük, amelyik egy fordítást módosít. Ugyanez az oldal most 585 helyett 31 parancsot küld. Az oldalak előállítása elé korlátot is tettünk: egyszerre rögzített számú oldal készül, egy rövid sor vár, és ami ezen felül érkezik, azonnal „próbálja újra egy pillanat múlva” választ kap ahelyett, hogy minden oldalt lelassítana.
Éles környezetben mérve
A szeptember 23-i kiadás után újra megmértük az élő webhelyet. A medián oldal 249 helyett 42 ezredmásodperc alatt készül el, a húszból a leglassabb pedig közel két másodperc helyett 72 ezredmásodperc alatt. Az oldalanként 214-szer futó lekérdezés most egyszer fut.
A feljegyzett tanulság egyszerű: a kapacitásadat mérés, nem hit. Sosem teszteltük, mennyit bír a nyilvános webhely. Most már igen, és mielőtt számot mondunk, újra tesztelni fogunk.