GNU/Linux >> Znalost Linux >  >> Linux

Výukový program příkazu Linux vmstat pro začátečníky (5 příkladů)

Pokud hledáte nástroj příkazového řádku, který můžete použít k přístupu k informacím o procesech, aktivitě CPU, paměti a dalším, budete rádi, když víte, že vmstat dělá to za vás.

V tomto článku budeme diskutovat o základech tohoto nástroje pomocí několika snadno pochopitelných příkladů. Ale než to uděláme, stojí za zmínku, že všechny příklady v tomto článku byly testovány na počítači Ubuntu 20.04 LTS, ale bude fungovat také na CentOS a Debianu.

Příkaz Linux vmstat

Příkaz vmstat v systému Linux hlásí statistiky virtuální paměti. Následuje jeho syntaxe:

vmstat [možnosti] [zpoždění [počet]]

A zde je návod, jak to vysvětluje manuálová stránka nástroje:

 vmstat  uvádí informace o procesech, paměti, stránkování, blokových IO,
       pastech, discích a aktivitě procesoru.

       První vytvořená zpráva uvádí průměry od posledního restartu. Další?
       cionální  zprávy  poskytují informace o vzorkovací periodě délky zpoždění.
       Zprávy o procesu a paměti jsou v obou případech okamžité.

Následuje několik příkladů ve stylu otázek a odpovědí, které by vám měly poskytnout lepší představu o tom, jak funguje příkaz vmstat:

Q1. Jak používat vmstat?

Pro základní použití stačí spustit 'vmstat' sans any option.

vmstat

Například v mém případě výše uvedený příkaz vytvořil následující výstup:

procs -----------paměť---------- ---swap-- -----io---- -system-- ---- --CPU ----- 
r B swpd Free Buff Cache Si So bi bo in cs us id wa st
1 0 0 401160 100252 1307468 0 0 5 17 49 70 0 0 100 0 0

Jak naznačuje první řádek, výstup je rozdělen do šesti sekcí. Manuálová stránka nástroje obsahuje podrobné informace o těchto hodnotách. Zde je úryvek:

Proces
       r:Počet spustitelných procesů (běžících nebo čekajících na dobu běhu).
       b:Počet procesů v nepřerušitelném spánku.

   Paměť
       swpd:množství použité virtuální paměti.
       free:množství nečinné paměti.
       buff:množství paměti použité jako vyrovnávací paměti.
       cache:množství paměti použité jako mezipaměť.
       neaktivní:množství neaktivní paměti. (-a option)
       active:množství aktivní paměti. (-a option)

   Swap
       si:Množství paměti prohozené z disku (/s).
       so:Množství paměti prohozené na disk (/s).

   IO
       bi:Bloky přijaté z blokového zařízení (bloky/s).
       bo:Bloky odeslané do blokového zařízení (bloky/s).

   Systém
       in:Počet přerušení za sekundu, včetně hodin.
       cs:Počet přepnutí kontextu za sekundu.

   CPU
       Toto jsou procenta celkového času procesoru.
       nás:Čas strávený spouštěním nekernelového kódu. (čas uživatele, včetně příjemného času)
       sy:Čas strávený spouštěním kódu jádra. (systémový čas)
       id:Čas strávený nečinností. Před Linuxem 2.5.41 to zahrnuje dobu čekání na IO.
       wa:Čas strávený čekáním na IO. Před Linuxem 2.5.41, součástí idle.
       st:Čas ukradený z virtuálního počítače. Před Linuxem 2.6.11, neznámé.

Q2. Jak zajistit, aby vmstat automaticky aktualizoval svůj výstup?

Ve výchozím nastavení vytváří vmstat výstup jednou. Pokud však chcete, aby vmstat automaticky aktualizoval svůj výstup, můžete to udělat zadáním číselné hodnoty jako vstupu do příkazu.

Tato číselná hodnota funguje jako zpoždění (v sekundách), po kterém je výstup aktualizován. Například:

vmstat 3

Tímto způsobem se výstup vmstat obnoví každé 3 sekundy.

procs -----------paměť---------- ---swap-- -----io---- -system-- ---- --CPU ----- 
r B swpd Free Buff Cache Si So bi bo in cs us id wa st
1 0 0 410928 100276 1307480 0 0 0 5 17 49 70 0 0 100 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 410920 100284 1307480 0 0 0 181 108 143 0 0 0 0
0 0 0 410920 100292 1307480 0 0 0 7 92 132 0 0 100 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 100292 1307480    0    0     0     0   87  124  0  0 100  0  0
...
...
...

Q3. Jak zajistit, aby vmstat zobrazoval slabinfo?

Pro slabinfo musíte použít volbu -m příkazového řádku. Všimněte si, že jádro vaší distribuce Linuxu musí podporovat slabinfo, aby tato volba fungovala. Pokud existuje podpora, musíte příkaz spustit s oprávněním sudo.

sudo vmstat -m

Například v mém případě zde je výňatek z vytvořeného výstupu:

Pre> KACHY Num Celkové velikosti
ufs_inode_cache 0 0 808 40
qnx4_inode_cache 0 0 680 48
hfsplus_attr_cache 0 0 0 0 3340 8
hfsplus_icache 0 0 896 36
0 832 39
minix_inode_cache 0 0 672 48
ntfs_big_inode_cache 0 0 960 34
ntfs_inode_cache 0 0 0 296 55
jfs_ip 0 0 1280 25
xfs_dqtrx 0 0 528 31
/> xfs_dquot 0 0 496 33
xfs_buf 0 0 384 42
xfs_rui_item 0 0 696 47
xfs_rud_item 0 0 176 46
xfs_inode 0 0 1024 32
xfs_EFD_ITEM 0 0 000 000 000 000 000 0000 0000 0000 00000 0000 0000 000 00000. 440     37
xfs_buf_i TEM 0 0 272 30
xfs_trans 0 0 232 35
xfs_da_state 0 0 480 34
xfs_btree_cur 0 0 224 36
...
...
...

4. Jak vytvořit souhrnné statistiky aktivity disku vmstat?

Použijte pro to volbu -D příkazového řádku.

vmstat -D

Zde je výstup, který tento příkaz vytvořil v mém systému:

10 disků
2 oddíly
15066 Celkem čtení
5937 Sloučené čtení
1272794 Read Sectors
20063 Milli Reading
155026 zápisy
103687 sloučené zápisy
      4602472 zapsaných sektorů
       105279 mili zápis
            0 probíhající IO
          126 mili utracená IO

O5. Jak zajistit, aby vmstat připojil časové razítko ke každému výstupnímu řádku?

Chcete-li se ujistit, že příkaz vmstat připojí časové razítko ke každému výstupnímu řádku, použijte příkazový řádek -t:

vmstat -t
$ vmstat 2 -t
procs -----------paměť---------- ---swap-- -----io--- - -system-- ------cpu----- -----timestamp-----
 r  b   swpd   zdarma   buff  mezipaměť   si   tak    bi    bo   v   cs us sy id wa st                      
2 0 0 410116 100432 1308160 0 0 5 17 49 70 0 0 0 0 2020-05-08 09:40:05
0 0 0 0 0 410116 100432 1308160 0 0 0 88 100 136 0 0 100 0 0 2020-05-08 09:40:07
 0  0      0 410116 100440 1308160    0    0     0 0 0 0 0 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 2 0 0 18 0 0 0 139 410116 100440 1308160 0 0 0 0 93 126 0 0 100 0 0 2020-05-08 09:40:11
0 0 0 0 410368 100448 1308160 0 0 0 107 144 0 0 0 0 0 0 2020-05-08 09:40:13
0 0 0 0 410368 100448 1308160 0 0 0 0 86 122 0 0 100 0 0 2020-05-08 09:40:15
0 0 0 0 0 0 410368 100448 1308160 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 101  135  0  0 100  0  0 2020-05-08 09:40:17

Zvýrazněné položky zobrazují časové razítko obsažené v každém řádku.

Závěr

V závislosti na druhu práce, kterou provádíte na příkazovém řádku Linuxu, se může příkaz vmstat ukázat jako opravdu užitečný. Kromě zde diskutovaných možností existuje mnoho dalších možností příkazového řádku, které tento nástroj nabízí. Zde se dozvíte více.


Linux
  1. Linux cd command tutorial pro začátečníky (8 příkladů)

  2. Linux Date Command Tutorial pro začátečníky (8 příkladů)

  3. Linux hostname Command Tutorial pro začátečníky (5 příkladů)

  1. Výuka příkazů Linux pro začátečníky (5 příkladů)

  2. Linux df Command Tutorial pro začátečníky (8 příkladů)

  3. Linux du Command Tutorial pro začátečníky (10 příkladů)

  1. Výukový program Linux echo Command pro začátečníky (5 příkladů)

  2. Linux env Command Tutorial pro začátečníky (5 příkladů)

  3. Návod k příkazu velikosti Linuxu pro začátečníky (6 příkladů)