Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 9822|Odpoveď: 1

Podrobné vysvetlenie príkazu Linux vmstat v praxi

[Kopírovať odkaz]
Zverejnené 19. 10. 2014 19:36:48 | | |

Príkaz vmstat je najbežnejší nástroj na monitorovanie Linuxu/Unixu, ktorý zobrazuje stavové hodnoty servera v danom časovom intervale, vrátane serveraVyužitie CPU, využitie pamäte, virtuálna pamäťová výmena, IO čítanie a zápis. Tento príkaz je môj obľúbený na kontrolu Linuxu/Unixu, jeden je, že Linux/Unix je podporovaný, a druhý je, že v porovnaní s vrchným režimom vidím využitie CPU, pamäte a IO celého stroja, namiesto toho, aby som videl len využitie CPU a pamäte každého procesu (rôzne scenáre použitia).

Vo všeobecnosti sa nástroj vmstat používa cez dva numerické parametre, prvý parameter je počet vzorkovaných časových intervalov, jednotka sekundy a druhý parameter je počet vzoriek, napríklad:


root@ubuntu:~# VMSTAT 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU----
r b swpd free buff cache si so bi bo in cs us sy id wa wa
1  0      0 3498472 315836 3819540    0    0     0     1    2    0  0  0 100  0

2 znamená, že stav servera sa zbiera raz za dve sekundy, a 1 znamená, že stav servera sa zbiera iba raz.

V skutočnosti počas procesu podávania žiadosti monitorujeme určitý čas, a ak to nechceme monitorovať, môžeme jednoducho ukončiť vmstat priamo, napríklad:


root@ubuntu:~# VMSTAT 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU----
r b swpd free buff cache si so bi bo in cs us sy id wa wa
1  0      0 3499840 315836 3819660    0    0     0     1    2    0  0  0 100  0
0  0      0 3499584 315836 3819660    0    0     0     0   88  158  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0     2   86  162  0  0 100  0
0  0      0 3499708 315836 3819660    0    0     0    10   81  151  0  0 100  0
1  0      0 3499732 315836 3819660    0    0     0     2   83  154  0  0 100  0

To znamená, že VMSTAT zbiera dáta každé 2 sekundy a pokračuje, kým program neukončím, a program ukončím po tom, čo som tu zozbieral údaje 5-krát.

Dobre, príkaz je predstavený, teraz začnime vysvetľovať význam každého parametra.

rTo znamená spustiť frontu (teda koľko procesov je naozaj pridelených CPU), server, ktorý som testoval, je momentálne relatívne nečinný, nebežia žiadne programy, keď táto hodnota prekročí počet CPU, vznikne úzke hrdlo CPU. To súvisí aj s zaťažením horného servera, zvyčajne je záťaž vyššia, ak prekročí 3, vyššia ak prekročí 5, a ak prekročí 10, nie je normálna a stav servera je veľmi nebezpečný. Zaťaženie vrchu je podobné ako pri bežiacom rade za sekundu. Ak je bežiaca fronta príliš veľká, znamená to, že CPU je zaneprázdnený, čo zvyčajne spôsobuje vysokú záťaž CPU.

bZnamená to blokovaný proces, to nie je veľa čo povedať, proces je zablokovaný, všetci to chápu.

SWPDAk je veľkosť použitej virtuálnej pamäte väčšia ako 0, znamená to, že váš stroj nemá dostatočnú fyzickú pamäť, a ak to nie je príčinou úniku pamäťovej pamäte programu, je čas pamäť aktualizovať alebo migrovať pamäťovo náročné úlohy na iný stroj.

Free   Veľkosť voľnej fyzickej pamäte, pamäť môjho stroja je celkovo 8G a zvyšných 3415M.

Buff   Linux/Unix systém sa používa na ukladanie, aký obsah v adresári, oprávnenia a podobne cache, pravdepodobne zaberám viac ako 300 miliónov na tomto stroji

CacheCache sa priamo používa na zapamätanie si súborov, ktoré otvárame, na ich bufferovanie, na svojom vlastnom počítači zaberám viac ako 300M (tu je šikovná vec Linuxu/Unixu, časť voľnej fyzickej pamäte využiť na cache súborov a adresárov, aby sa zlepšil výkon programu – keď program využíva pamäť, buffer/cached sa použije rýchlo). )

Si  Ak je táto hodnota väčšia ako 0, znamená to, že fyzická pamäť nie je dostatočná alebo je pamäť uniknutá. Môj počítač má dosť pamäte a všetko je v poriadku.

takže  Veľkosť disku zapísaného do virtuálnej pamäte za sekundu, ak je táto hodnota väčšia ako 0, je rovnaká ako vyššie.

bi  Blokové vybaveniePočet blokov prijatých za sekundu, tu blokové zariadenie označuje všetky disky a ostatné blokové zariadenia v systéme, predvolená veľkosť bloku je 1024 bajtov, nemám na stroji žiadnu IO operáciu, takže to bolo vždy 0, ale videl som to na strojoch, ktoré spracovávajú veľké množstvo dát (2-3T), môžu dosiahnuť 140000/s a rýchlosť zápisu na disku je takmer 140M za sekundu

BoPočet blokov odoslaných za sekundu blokovým zariadením, napríklad pri čítaní súboru, bo je väčší ako 0. Bi a Bo sú zvyčajne blízko 0, inak je IO príliš častý a treba ho upraviť.

vPočet prerušení za sekundu CPU, vrátane časových prerušení

CSPočet prepínaní kontextu za sekundu, napríklad keď voláme systémovú funkciu, potrebujeme prepínať kontexty a prepínanie vlákienKontext procesuNapríklad na webových serveroch ako Apache a nginx zvyčajne robíme výkonnostné testy s tisíckami alebo dokonca desaťtisícmi súbežnosti a proces výberu webového servera môže byť znížený o vrchol procesu alebo vlákna, záťažový test, až kým CS nedosiahne relatívne malú hodnotu, počet procesov a vlákien je vhodnejšou hodnotou. Systémové volania sú tiež rovnaké, zakaždým, keď sa zavolá systémová funkcia, náš kód vstúpi do priestoru jadra, čo vedie k prepínaniu kontextu, čo je veľmi náročné na zdroje, a mali by sme sa snažiť vyhýbať častým volaniam systémových funkcií. Príliš veľa prepínaní kontextu znamená, že väčšina CPU je premrhaná na prepínanie kontextu, čo vedie k tomu, že CPU má menej času na vážne veci a CPU nie je plne využité, čo nie je odporúčané.

MyužívateľČas CPURaz som videl, že v USA bolo blízko 100 a r bežiaca fronta dosiahla 80 na serveri, ktorý veľmi často šifroval a dešifroval (stroj bol stresovo testovaný a výkon nebol dobrý).

syAk je čas CPU systému príliš veľký, znamená to, že systémové volania sú dlhé, napríklad pri častých IO operáciách.

Id  Nečinný čas CPU, všeobecne povedané, id + us + sy = 100, všeobecne si myslím, že id je nečinné využitie CPU, us je využitie CPU používateľa, sy je využitie CPU systému.

WTPočkaj na čas IO CPU.







Predchádzajúci:Milý
Budúci:Pláž je pekná
Zverejnené 19. 10. 2014 19:40:57 |
Neviem to pochopiť
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com