GNU/Linux >> Znalost Linux >  >> Linux

Použití vmstat k řešení problémů s výkonem v Linuxu

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ů)


Linux
  1. Odstraňte problémy s použitím souborového systému proc na Linuxu

  2. Použití nfsstat a nfsiostat k řešení problémů s výkonem NFS v Linuxu

  3. 24 Příklady iostat, vmstat a mpstat pro monitorování výkonu Linuxu

  1. Jak řešit problémy s výkonem v Linuxu – Průvodce pro začátečníky

  2. Jak vypočítat využití paměti v Linuxu pomocí sar, ps a zdarma

  3. omezení využití paměti v R pod linuxem

  1. Využití paměti Linuxu

  2. Linuxové příkazy:prozkoumávání virtuální paměti pomocí vmstat

  3. Použití nástroje Windows Performance Analyzer k řešení problémů s výkonem