Ráno 22. septembra sa torun.ai sotva hýbal. Farma automatizovaných prehliadačov, vyše dvetisíc adries za tri štvrte hodiny, si vyžadovala naše verejné stránky jednu po druhej a v najhoršej minúte to boli asi tri stránky za sekundu. Web by to mal zvládnuť bez mihnutia oka. Náš nezvládol: v najvyťaženejšom úseku trvala viac než štvrtina požiadaviek dlhšie ako tridsať sekúnd a stovky návštevníkov to vzdali skôr, než stránka prišla.
Nebola to záťaž, akú sme čakali
Zjavnými podozrivými boli crawler a procesor. Ani jeden neobstál. Keď sme tie isté tri stránky za sekundu prehrali proti kópii webu, vydržala menej ako minútu a potom už nedokončila vôbec nič. Využitie procesora kleslo zo 60 percent na 1, kým počet vlákien stúpol z 12 na 166. Preťažený server pracuje viac; tento čakal.
Cesta tam a späť za každé slovo
Sledovanie servera vyrovnávacej pamäte počas jedinej stránky ukázalo, na čo čakal. Jedna stránka mu poslala 585 príkazov a 428 z nich bol stále dokola jeden dopyt a jeho obnovenie: tabuľka prekladov, ktorá je pre náš web prázdna. Každý preložený text na stránke, a stránka ich má stovky, sa na ňu pýtal znova a každý dopyt držal vlákno, kým neprišla odpoveď. Pri troch stránkach za sekundu vlákna došli a všetko sa za nimi zaradilo do frontu.
Oprava a limit
Tieto dopyty sa teraz vybavujú z pamäte vždy na minútu, po vypršaní sa načítajú len raz a vymažú sa na serveri, ktorý mení preklad. Tá istá stránka teraz posiela 31 príkazov namiesto 585. Pred vytváranie stránok sme dali aj limit: naraz vzniká pevný počet stránok, čaká krátky front a všetko nad to okamžite dostane „skúste to o chvíľu znova“ namiesto toho, aby spomalilo každú stránku.
Zmerané v produkcii
Po vydaní 23. septembra sme živý web zmerali znova. Medián stránky vznikne za 42 milisekúnd namiesto 249 a najpomalšia z dvadsiatich za 72 milisekúnd namiesto takmer dvoch sekúnd. Dopyt, ktorý bežal 214-krát na stránku, teraz beží raz.
Ponaučenie, ktoré sme si zapísali, je jednoduché: údaj o kapacite je meranie, nie viera. Nikdy sme neskúšali, čo verejný web vydrží. Teraz už áno, a skôr než nejaké číslo uvedieme, vyskúšame to znova.