Server spomaľuje. Ktoré čísla vám povedia prečo?

CPU je iba časť obrazu. Ako spojiť odozvu, chyby, pamäť, disk a fronty pri hľadaní úzkeho miesta.

Ulička serverovne s kovovými rackmi a technickým vybavením
Fotografia: İsmail Enes Ayhan / Unsplash

Web sa načítava pomaly a prvý pohľad smeruje na CPU. Graf však ukazuje prijateľné využitie. Server môže čakať na disk, databázu, voľné pripojenie alebo vzdialené API. Pri diagnostike sa oplatí začať prejavom, ktorý vidí používateľ, a až potom hľadať zdroj obmedzenia. Jedno číslo nevysvetlí celú službu.

Začnite odozvou, chybami a prevádzkou

Porovnajte pomalé obdobie s bežným stavom. Narástol počet požiadaviek, zmenil sa typ operácií alebo pribudli chyby? Oddeľte čas strávený v aplikácii od čakania na závislosti. Priemer odozvy doplňte percentilmi z interného merania; malá skupina veľmi pomalých požiadaviek sa v priemere ľahko stratí.

Externá kontrola ukáže, že sa odozva zhoršila. Interné metriky a logy pomôžu vysvetliť kde. Pri oboch používajte jednotný čas, aby sa dali porovnať s nasadeniami a úlohami na pozadí.

CPU a pamäť čítajte v kontexte

Vysoké CPU pri dávkovej práci môže byť očakávané. Nízke CPU počas pomalého webu môže znamenať čakanie na iný zdroj. Pri pamäti odlíšte užitočnú cache od nedostatku, ktorý vedie k swapovaniu alebo ukončovaniu procesov. Sledujte aj limity kontajnera, nielen celkovú kapacitu stroja.

Disk a fronty často odhalia skryté čakanie

Kontrolujte voľné miesto, dostupné inody a latenciu úložiska. Plný disk môže zablokovať logy aj databázové zápisy. Samotný objem prenesených dát nevysvetľuje, ako dlho operácie čakajú. Pri databáze pridajte pomalé dotazy, zámky a počet využitých pripojení.

Rastúca fronta býva skorým signálom, že služba prijíma prácu rýchlejšie, než ju zvláda. Sledujte nielen počet úloh, ale aj vek najstaršej. Krátka fronta s veľmi starou úlohou môže odhaliť zaseknutý proces alebo chybu v spracovaní.

Kapacitu pridávajte po overení úzkeho miesta

Viac aplikačných inštancií nemusí pomôcť, ak všetky čakajú na tú istú databázu. Môžu dokonca zvýšiť počet pripojení a situáciu zhoršiť. Najprv identifikujte obmedzenie, navrhnite malý zásah a porovnajte stav pred ním a po ňom. Aj dočasná oprava má mať merateľný výsledok.

  • Odozva, chybovosť a počet požiadaviek.
  • CPU, pamäť a limity procesov alebo kontajnerov.
  • Voľný disk, inody a latencia úložiska.
  • Databázové zámky, pripojenia a vek úloh vo fronte.

Čo si odniesť

Zbierajte malú sadu údajov, ktoré dokážete spojiť s dopadom na používateľa. Dobrý prehľad nie je ten s najväčším počtom grafov, ale ten, ktorý vás nasmeruje k správnemu zásahu.

Dokumentácia a ďalšie čítanie

Mgr. Martin Hlavaj, MBA

Softvérový inžinier

Všetky články

O výpadku sa dozviete včas.

Pridajte svoj web alebo API do UpBota a nastavte, komu príde upozornenie.

Začať monitorovať zadarmo