03.10.2023 - Üks halb päev vint.ee ajaloos (postmortem).

Loetud 56 kasutaja poolt

MeikopVint.ee asutaja 2023-10-09T14:18:03+03:00
Vint.ee keskkond on olnud viimastel aastatel väga stabiilne. Viimased suuremad intsidendid on olnud seotud võrguprobleemidega meie teenusepakkuja juures (TransIP, Holland) ja ka need on olnud lühiajalised ja jäänud aastate taha.

Aga kuupäeval 03.10.2023 juhtus midagi, mida pole juhtunud viimased 10 aastat - vint.ee server muutus ülekoormuse tõttu täiesti kättesaamatuks.

Taust
Portaalis vint.ee saab mängida arvutiga malet - "Arvuti" on Stockfishi programm vint.ee serveris. Iga arvutiga malemäng käivitab serveris ühe stockfishi protsessi. See protsess kasutab serveri resursse (CPU, mälu) kuid iga mängu lõppedes see protsess suletakse ja resurss vabastatakse.

Mis läks valesti
Tegin malele juurde katsetuseks ühe väikese täienduse - iga mängu alguses tõmmatakse samuti käima Stockfishi protsess ja iga kasutaja tehtud käigu juures küsitakse Stockfishi soovitust selles seisus. Ja siis arvutatakse kasutaja "täpsus" arvuti soovitusega võrreldes.
Ja valesti läks nüüd see, et Stockfishi protsessi mängu lõppedes kinni ei pandud. Lihtsalt 1 puuduolev rida koodis. Ja tulemuseks oli see, et iga mängitud malemänguga hakkas serveri mälukasutus tõusma.
Meil on küll korralikud graafikud Grafanas, mis näitavad serveri resursside kasutust reaalajas kuid mina neid igapäevaselt ei jälgi (just seetõttu, et aastaid on kõik korras olnud). Ja ühtegi alerti seal konfigureeritud ei ole.

03.10.2023
Eelpool nimetatud uuenduse panin ma üles juba nädal varem, umbes 25.09.2023. Mälukasutus kasvas ajas nii aeglaselt, et oli vaja nädalat, et kogu mälu ära kasutataks.
Ja mis juhtub, kui serveril mälu otsa saab? Serveri operatsioonisüsteem (Linux) hakkab meelevaldselt protsesse sulgema: Java mänguserver, andmebaas jms.
03.10.2023 lõuna ajal hakkasid inimesed mulle kirjutama, et vint.ee on maas.
Mina, olles harjunud stabiilse serveri kuvandiga, arvasin alguses loomulikult, et tegu on võrguprobleemidega.
Asja ei teinud lihtsamaks ka asjaolu, et olin tööasjus Prahas ja vint.ee arendamiseks kasutatav arvuti asus Eestis.
Õnneks sain ligipääsu teisele arvutile ja vint.ee serveri graafikutele ning siis sain aru, et juhtunud on mingi katastroof - servei mälu oli täiesti kasutuses.
Server oli nii koomas, et sinna ei saanud isegi terminali kaudu ligi.

Midagi positiivset
Kuna serverile terminali kaudu ligi ei saanud, oli ainsaks võimaluseks minna teenusepakkuja (TransIP) iseteenindusse ja seal oli ka üks positiivne üllatus - ühe klikiga oli võimalik server restartida ja normaalne seis (portaal oli täiesti töökorras) taastus vähem kui minutiga.

Lõpp hea, kõik hea
Server töökorda seatud, oli veidi aega asja analüüsida ja juurpõhjust otsida. Loomulikult ma oletasin, et viga pidi olema seotud viimaste uuendustega ning paari päeva pärast Eestisse lennates, leidsin probleemse koodirea kohe üles ja parandasin selle ära.
Lisaks: jälgin nüüdsest serveri graafikuid vähemalt kord päevas, et aru saada kas kõik on ikka töökorras.

Parimat,
Marten Meikop
Vint.ee
 
error500.png
error-500_4x.gif

Lisa vastus

See funktsionaalsus on ainult verifitseeritud või VIP kasutajatele