Zjutraj 22. septembra se je torun.ai komaj premikal. Farma avtomatiziranih brskalnikov, več kot dva tisoč naslovov v treh četrtinah ure, je naše javne strani zahtevala eno za drugo, v najslabši minuti pa je šlo za približno tri strani na sekundo. Spletno mesto bi to moralo prenesti brez težav. Naše ni: v najbolj obremenjenem obdobju je več kot četrtina zahtev trajala več kot trideset sekund, stotine obiskovalcev pa so obupale, preden je stran prispela.
Ni bila obremenitev, ki smo jo pričakovali
Očitna osumljenca sta bila pajek in procesor. Nobeden ni zdržal preverbe. Ko smo iste tri strani na sekundo predvajali na kopiji spletnega mesta, je zdržala manj kot minuto, nato pa ni dokončala ničesar več. Izraba procesorja je padla s 60 odstotkov na 1, število niti pa se je povzpelo z 12 na 166. Preobremenjen strežnik dela več; ta je čakal.
Pot tja in nazaj za vsako besedo
Opazovanje predpomnilniškega strežnika med eno samo stranjo je pokazalo, na kaj čaka. Ena stran mu je poslala 585 ukazov, 428 od njih pa je bila ena in ista poizvedba ter njena osvežitev, znova in znova: tabela prevodov, ki je za naše spletno mesto prazna. Vsako prevedeno besedilo na strani, ki jih ima stran na stotine, jo je zahtevalo znova, in vsaka zahteva je držala nit, dokler ni prišel odgovor. Pri treh straneh na sekundo so niti pošle in vse se je postavilo v vrsto za njimi.
Popravek in omejitev
Te poizvedbe se zdaj strežejo iz pomnilnika vsakič za minuto, ob izteku se pridobijo samo enkrat in se izbrišejo na strežniku, ki spremeni prevod. Ista stran zdaj pošlje 31 ukazov namesto 585. Pred ustvarjanje strani smo postavili tudi omejitev: hkrati nastane določeno število strani, čaka kratka vrsta, vse nad tem pa takoj dobi »poskusite znova čez trenutek«, namesto da bi upočasnilo vse strani.
Izmerjeno v produkciji
Po izdaji 23. septembra smo delujoče spletno mesto znova izmerili. Mediana strani nastane v 42 milisekundah namesto 249, najpočasnejša od dvajsetih pa v 72 milisekundah namesto skoraj dveh sekund. Poizvedba, ki se je izvedla 214-krat na stran, se zdaj izvede enkrat.
Nauk, ki smo si ga zapisali, je preprost: podatek o zmogljivosti je meritev, ne prepričanje. Nikoli nismo preizkusili, koliko zdrži javno spletno mesto. Zdaj smo, in preden navedemo številko, bomo preizkusili znova.