( egeresz | 2019. 11. 01., p - 21:29 )

A múltkori (5. forduló, okt. 25 péntek 20:00 ) -nél az volt az érzésem, hogy a rendszer elérte a teljesítőképessége határát. Nem ddos jellegűen halt meg, hanem normál túlterhelésjellegűen. Most (nov.1 péntek 20:00) nem tapasztalható az ok, ugyanis egyszer sem volt reszponzív az oldal. (pontosabban 20:03 táján bejelentkezni be tudtam, de pár másodperccel rá a rendszer elesett).

Úgy néz ki, hogy a fejlesztőjük/üzemeltetésük a user oldali (böngészőben implementált) dolgokban otthon van, de a szerver oldalban elég gyengus. Fizetnek egy CDN szolgáltatást (cloudfare) az oldja meg minden teljesítményigényt. (nem fogja).

Nézzünk pár régi trükköt a megbízhatóság növelésére!

- valami CDN megoldás (ezük van, ugorjunk)
- a bejelentkeztető egy önnálló domain, van benne állítható limit, hogy hány usert engedje be. Nem dependál sem az arculati oldal, sem a verseny oldal működésére
- A versenyoldal a 'submit' gomb esetén letárolja az adatot. Akkor is, ha elmúlt a 10 perc. Lehetőleg valami olyan helyre, ahova bőszen lehet írni. (független a feldolgozó DB-től) ez azért kell, hogy elvi lehetőség legyen az értékes adatok utólagos  kinyerésére, ha elesett a DB
- A log nem tartalmaz névfeloldást. Semmi nem végez hálózatfüggő névfeloldást. (sem ldap, sem bind)
- DB backendet meg kellene tolni. Egyrészt programozó oldalról (lockok hogyan is vannak, van-e long query) másrészt DB admin oldalról (ott van-e index, ahol kell, táblaterek hogyan vannak) harmadrészt rendszergazda oldalról (dedikált DB gép, elég-e a memória, SSD van-e alatta, hogyan is van a DB cluster, nem véletlenül péntek este 8-kor indul a heti full backup?)
- A verseny oldal másik domain, másik vas, mint a ithon.info. Az egyikre beeső terhelés ne egye el a CPU-ját a másiknak.
- Itt most nem jelentkezett, de nem ártana, ha a versenyoldal minden kiszolgált elemét (összes js, összes css, összes font) saját kézben lévő szerver adná. Az is elég arcvesztés, ha egy harmadik féll összedőlése miatt áll a verseny.

Egyébként —ha csak nincs valami algoritmukusan elszúrva, amikor is "n" konkurens felet deadlockol a DB— egyszerű és nagyszerű segítség a DB táblaterét (adatfájljait) berakni egy frissen vásárolt NVMe storage cardba. Néha az is segít, ha leállítod a multi-master DB replikát :-)

 

egyébként köszi a blogbejegyzést, így legalább nem indítok másikat.