vmstat (statistika virtuální paměti) umožňuje sledovat využití paměti vašeho systému. Ukazuje, kolik je k dispozici virtuální paměti a kolik je volné a stránkovací aktivity. Můžete sledovat vstupy a výstupy stránek, jak k nim dochází. To je mimořádně užitečné pro detekci nedostatku fyzické paměti, což může nepříznivě ovlivnit výkon systému.
Spuštění vmstat bez jakýchkoli argumentů
Než začnete, je důležité poznamenat, že první řádek výstupu z vmstat (a jediný, který je uveden, pokud je spuštěn bez argumentů) je souhrn od doby spouštění systému. Obvykle to není příliš užitečné pro problémy s výkonem, zvláště pokud je systém delší dobu v provozu. Stále však může obsahovat užitečné informace o událostech, které se staly v minulosti, ale v současnosti se nedějí.
# vmstat procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 387560 62140 44 348320 1 2 94 20 90 15 1 1 98 0 0
Jak číst výstup vmstat
Výstup vmstat obsahuje více než jen statistiku paměti. Stejně jako u iostat a mpstat přijímá vmstat argumenty interval a počet. Následující příklad spustí 3 sestavy s odstupem 5 sekund:
# vmstat 5 3 procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu----- r b swpd free buff cache si so bi bo in cs us sy id wa st 3 0 384120 68604 8088 327332 1 2 90 20 90 14 1 1 98 0 0 1 0 384120 68604 8088 327364 0 0 0 0 91 179 1 0 99 0 0 0 0 384120 68232 8088 327364 0 0 0 0 107 190 1 1 98 0 0
Výstup je rozdělen do šesti sekcí:
1. procesy
2. paměť
3. výměna
4. io
5. systém
6. cpu
proces
První dva sloupce poskytují informace o procesech:
r | Počet procesů, které jsou ve stavu čekání. Tyto procesy nedělají nic jiného, než že čekají na spuštění. |
b | Počet procesů, které byly v režimu spánku a byly přerušeny od poslední aktualizace |
paměť
Následující čtyři sloupce poskytují informace o paměti:
swpd | Množství použité virtuální paměti |
zdarma | Velikost nečinné paměti |
buff | Množství paměti použité jako vyrovnávací paměti |
mezipaměť | Množství paměti použité jako mezipaměť |
swap
Následující dva sloupce poskytují informace o swapu:
si | Množství paměti odložené z disku (za sekundu) |
tak | Množství paměti vyměněné na disk (za sekundu) |
Nenulové si a tak čísla označují, že není dostatek fyzické paměti a že jádro vyměňuje paměť na disk.
io
První dva sloupce poskytují informace o I/O (vstup-výstup):
bi | Počet bloků za sekundu přijatých z blokového zařízení |
bo | Počet bloků za sekundu odeslaných do blokového zařízení |
systém
Následující dva sloupce poskytují následující systémové informace:
v | Počet přerušení za sekundu, včetně hodin |
cs | Počet přepnutí kontextu za sekundu |
procesor
Posledních pět sloupců uvádí procenta celkového času CPU:
nás | Procento cyklů CPU strávených uživatelskými procesy |
sy | Procento cyklů CPU vynaložených na systémové (kernel) procesy |
id | Procento cyklů CPU strávených nečinností |
wa | Procento cyklů CPU strávených čekáním na I/O |
st | Procento cyklů CPU ukradených z virtuálního počítače |
Možnosti příkazového řádku
Další informace lze zahrnout poskytnutím různých voleb příkazu vmstat. Některé z možností příkazového řádku jsou uvedeny:
-a | Zobrazení aktivní a neaktivní paměti. |
-f | Zobrazí počet vidlic od spuštění. |
-t | Přidejte na výstup časové razítko. |
-d | Hlásit statistiku disku. |
Úzká místa CPU
Existují dvě důležité oblasti výstupu vmstat, které se týkají výkonu CPU. První je r sloupec. Je to první sloupec na výstupu. Obsahuje hodnotu, která odpovídá počtu vláken, která byla ve frontě běhu během minulého intervalu, ve kterém byl spuštěn vmstat. Tato vlákna čekala, až bude k dispozici CPU, aby mohla běžet. Existuje několik myšlenkových směrů o maximálním počtu, který je zde vhodný, ale většina lidí souhlasí s tím, že více než 2 až 5násobek počtu CPU v systému ukazuje úzké místo (Tento odhad je třeba upravit pro vícejádrové CPU).
Druhým místem, kde hledat data související s CPU, jsou pravé sloupce výstupu. Jsou zde tři sloupce:čas (uživatelský), sy (systémový) čas a id (nečinný) čas. Tyto tři rozdělují využití procesorového času v procentech. Jejich součet by měl činit 100 %. V ideálním případě bude CPU trávit většinu času v kategoriích us a id. Kategorie sy se týká času, který CPU stráví prací na úrovni ovladače/kernelu. Tento čas je odebrán uživatelským aplikacím. Pokud procesory tráví většinu času v této kategorii, mohlo by to znamenat nadměrné přepínání kontextu kvůli úzkým místům CPU nebo paměti, problémům se zamykáním na úrovni jádra nebo jiným problémům. Zaneprázdněný systém bude ukazovat konstantní procento nečinnosti blízké nule. Ale zaneprázdněný systém nutně neznamená, že je přetížený.
Výkon disku / IO
Obslužný program vmstat nám nemůže říci, které disky mají úzké hrdlo, ale může nám říci, zda je celkově problém s IO. Důležitým sloupcem ve výstupu je sloupec b (blokovaný). Odkazuje na počet vláken, která byla zablokována nebo čekala na dokončení IO v minulém intervalu. Sloupec b by měl být většinu času 0. Pokud je v tomto sloupci neustále nenulové číslo, můžete to dále prozkoumat pomocí iostat.
Úzká místa paměti
Analýza problémů souvisejících s pamětí by měla začít kontrolou množství volné paměti ve výstupu vmstat, který je ve 4. sloupci. Pokud je málo volné paměti, musíme více prozkoumat, který proces spotřebovává více paměti.
Závěr
Příkaz vmstat může být užitečným nástrojem pro řešení problémů s výkonem. Může vám říci, které podsystémy je třeba blíže prozkoumat, abyste mohli dále diagnostikovat problém.
Použití iostatu k monitorování výkonu systému v Linuxu (včetně příkladů)