Server se zpomaluje, ale nahoře ne vždy ukazuje proces, který je 100% zablokovaný. S vmstatBěhem několika sekund uvidíte, zda úlohy čekají na procesor, disk nebo paměť. Samozřejmě za předpokladu, že z prvního řádku nevyvodíte žádné závěry.
Vždy začínám s několika vzorky a pak porovnávám čítače s… uvolnit, a procesy. Toto je jediný způsob, jak odlišit skutečné zatížení paměti od zatíženého procesoru nebo úložiště, které nereaguje správně.

vmstat obvykle patří do balíčku procps Nebo procps-ng
vmstat 1 6
První řádek shrnuje aktivitu od začátku. Nepopisuje přesně druhý řádek, který právě uplynul. Chcete-li diagnostikovat probíhající zpomalení, zaměřte se na čtení následujících řádků. Možnost -w rozšiřuje sloupce, pokud se hodnoty stanou obtížně čitelnými:
vmstat -w 1 6
Nechte otevřený i druhý terminál. Spusťte čtení, reprodukujte pomalou akci a poté si všimněte sloupců, které se mění současně. Jediný prudký nárůst během ukládání nebo kompilace nemá stejnou váhu jako fronta, která zůstává vysoká po dobu několika minut.
Čtení sloupců r, b a CPU společně
zkoušky, Toto číslo označuje počet spustitelných úloh, které běží nebo čekají na čas procesoru. Porovnejte tuto hodnotu s počtem logických procesorů:
nproc
doba provozuschopnosti
Li r zůstává výrazně nad počtem dostupných CPU a že nás Nebo sy Pokud jsou vysoké úrovně vysoké, počítači pravděpodobně chybí procesorový čas. nás odpovídá kódu spouštěnému v uživatelském prostoru, zatímco sy měří práci jádra. Hodnota Neobvykle vysoká hodnota může pocházet z velkého počtu systémových volání, přerušení nebo změn kontextu.
Sloupec b To zahrnuje úlohy uvízlé v nepřerušitelném stavu spánku, často čekající na vstup nebo výstup. Pokud b waNež z toho viníš CPU, zkontroluj úložiště. wa představuje dobu, během které je procesor nečinný, zatímco probíhá vstupně/výstupní operace.
iddoba nečinnosti CPU;wačekání na vstup/výstup;ulice
Na VPS, a ulice Opakované opakování může naznačovat přetížený fyzický hostitel. Na fyzickém počítači tento sloupec obvykle zůstává na nule. Průvodce na průměrná zátěž pod Linuxem
Rozpoznání skutečného tlaku paměti pomocí principu „if and only if“
Sloupce swpd, uvolnit, fanoušek A skrytý poskytují kompaktní pohled na paměť. Nejsou dostatečné k indikaci nasycení. Linux znovu používá část RAM jako mezipaměť a uvolnit V vmstat nenahrazuje sloupec k dispozici řádu uvolnit.
volný -h
swapon --ukázat
swpd označuje množství použité swapovací paměti. Nenulová hodnota nedokazuje, že systém stále vyměňuje stránky. Věnujte tomu zvláštní pozornost. A tak na základě nedávných vzorků:
: data čtena ze swapu do RAM;tak: data přesunutá z RAM do swapu.
Opakované hodnoty v -li Nebo tak, vzpomínka Trvale nízký objem paměti a snížené doby odezvy jsou silným signálem tlaku na paměť. Stará, obsazená oblast swapu bez aktuální aktivity swapu nemá stejný význam. Průvodce na volné a dostupné paměti RAM podrobně popisuje roli mezipaměti, zatímco článek o swap pod Linuxem vysvětluje, proč byste ho neměli reflexivně vyprazdňovat.
Potvrďte čekání na disku pomocí příkazů bi, bo a iostat.
V sekci io, bi A bo b A wa zůstávají vysoké, přejděte na iostat :
iostat -xz 1 5
Podívejte se zejména čekat, fronta a %util pro každý disk. Nespoléhejte se na jednu prahovou hodnotu: NVMe SSD zvládne více operací paralelně, zatímco pevný disk se při náhodném přístupu rychle opotřebovává. Porovnejte hodnoty s obvyklým chováním počítače a aktuálním zpracováním.
Článek o iostat v Linuxu vysvětluje, jak tyto čítače připojit ke správnému zařízení. Pokud je zpomalení doprovázeno chybami, zkontrolujte také zprávy jádra:
journalctl -k -b -p varování..upozornění
Načíst proces před restartem služby
vmstat Označuje pravděpodobnou povahu blokování, nikoli název procesu. Poté seřaďte úlohy podle podezřelého zdroje:
ps -eo pid,uživatel,stat,ni,pcpu,pmem,comm --sort=-pcpu | hlavička
ps -eo pid,uživatel,stat,ni,pcpu,pmem,comm --sort=-pmem | hlavička
htop
V STAT D To obecně odpovídá nepřerušitelnému spánku. Může to vysvětlit sloupec PID je vysoký, ale hned ho neukončujte. Nejprve identifikujte jeho službu, otevřené soubory a protokoly:
ps -fp PID
stav systemctl příslušná služba --no-pager
journalctl -u service-concerne -n 100 --no-pager
Databáze může spotřebovat velké množství paměti RAM bez úniku dat a proces ve stavu Možná čeká na disk nebo síťové úložiště. Restartování někdy maskuje příznak, aniž by problém vyřešilo. Před provedením jakékoli akce zkontrolujte dobu trvání, pracovní vytížení a chyby.
Rozhodněte se na základě překrývajících se čítačů
Diagnóza se stává použitelnou, když několik sloupců vypráví stejný příběh:
- CPU přesycený :
rzůstává vysoká ve srovnání snproc, snásvysoký a malýid; - paměťový tlak :
k dispozicizůstat nízko,-liNebotak - disk čeká
bAwavstát tedyiostatpotvrzuje pomalé zařízení; - spor o virtualizaci :
ulicezůstává viditelný na virtuálním počítači i přes mírné interní zatížení.
Manuální stránka vmstatu popisuje každé pole. To iostat zobrazuje metriky ukládání dat. Uchovávejte si své hodnoty před zpomalením a během něj: bez porovnání v průběhu času je i vysoká hodnota počítadla obtížné interpretovat.