PHP Manual
/
Hlavný vývojár

Naliehavá oprava preťaženého servera

11. 02. 2023

Externý monitorovací nástroj vám oznámi, že priemerný čas odozvy 5 monitorovaných adries URL sa za posledných 30 minút zdvojnásobil. Projekt beží na jednom fyzickom serveri, ktorý nie je pod vašou správou a je spustený niekde v dátovom centre. Pripojíte sa cez SSH, spustíte htop a zistíte, že CPU je zaťažený na 95 % a pamäť je už dávno preplnená.

Podľa gitu viete, že asi pred týždňom robili migráciu databázy na novú štruktúru tabuliek a kolega píše v chate, že musel migráciu spustiť cez noc, pretože prepočítavanie stĺpcov a indexov trvalo asi 5 hodín, počas ktorých bola takmer celá databáza zamknutá a nefungoval INSERT ani SELECT.

Problémy s výkonom sú teda pravdepodobne spôsobené nesprávne navrhnutými indexmi, zle prepracovanými dotazmi SQL alebo veľkým združovaním spojení. Na revert nie je čas, na stránke je podľa Google Analytics 7 tisíc používateľov a výpadok na 5 hodín by pre klienta znamenal reputačné riziko a stratu desiatok až stoviek tisíc korún za ten čas (ťažko odhadnúť, projektanti si vymýšľajú dosť). Uvedomujete si, že testovanie iba funkčnosti v testovacom prostredí nestačí a je potrebné vykonať aj záťažový test.

Keďže ide o dôležitý e-shop vášho najväčšieho klienta a vy očakávate, že sa situácia môže zhoršiť, máte 30 sekúnd na rozhodnutie.

Ako postupujete?

  1. Nerobíte nič. Stránka bude pomalšia, ale pokiaľ to server zvládne, myslím, že je to v poriadku...
  2. Pokúsite sa pripraviť plán na vrátenie štruktúry DB a spustiť ho čo najskôr.
  3. Migrujete stránku na výkonnejší server (to však znamená, že klientovi urýchlene zvýšite cenu a potom budete čakať možno 6 hodín na dokončenie migrácie, pretože máte stovky GB databázových tabuliek).
  4. Zistíte, ktoré dotazy SQL a ktoré stránky zaberajú najviac času, a jednoducho ich zakážete.
  5. Spustíte Cloudflare a necháte ho staticky skontrolovať, čo môže.
  6. Niektoré ďalšie kúzla (nemyslím si, že je toho veľa, čo by sa dalo vymyslieť)...

Jan Barášek   Více o autorovi

Autor článku pracuje jako seniorní vývojář a software architekt v Praze. Navrhuje a spravuje velké webové aplikace, které znáte a používáte. Od roku 2009 nabral bohaté zkušenosti, které tímto webem předává dál.

Rád vám pomůžu:

Související články

1.
6.
Status:
All systems normal.
2024