|
Ukaz vmstat je najpogostejše orodje za spremljanje Linuxa/Unixa, ki prikazuje stanja strežnika v določenem časovnem intervalu, vključno s strežnikomUporaba procesorja, porabo pomnilnika, virtualno menjavo pomnilnika, branje in pisanje vhodno-izhodnih operacij. Ta ukaz je moj najljubši za preverjanje Linuxa/Unixa, eden je, da je Linux/Unix podprt, drugi pa je, da v primerjavi z zgornjim ukazom vidim CPU, pomnilnik in IO porabo celotnega računalnika, namesto da bi videl samo CPU in pomnilniško porabo vsakega procesa (različni scenariji uporabe). Na splošno se orodje vmstat uporablja z dvema numeričnima parametroma, prvi parameter je število vzorčenih časovnih intervalov, enota sekunde, drugi parameter pa število vzorcev, kot so:
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 pomeni, da se stanje strežnika zbere vsakih dveh sekund, 1 pa pomeni, da se stanje strežnika zbere le enkrat. Pravzaprav bomo med postopkom prijave spremljali nekaj časa, in če tega ne želimo spremljati, lahko preprosto neposredno zaključimo vmstat, na primer:
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 pomeni, da vmstat zbira podatke vsakih 2 sekundi in nadaljuje, dokler ne zaključim programa, nato pa ga zaključim po petih zbiranju podatkov tukaj. V redu, ukaz je uveden, zdaj začnimo razlagati pomen vsakega parametra. rTo pomeni, da se čakalna vrsta izvaja (torej koliko procesov je dejansko dodeljenih CPU-ju), strežnik, ki sem ga testiral, je trenutno razmeroma neaktiven, ni zagnanih programov, ko ta vrednost preseže število procesorjev, nastane ozko grlo procesorja. To je povezano tudi z obremenitvijo zgornjega strežnika; običajno je obremenitev večja, če preseže 3, večja, če preseže 5, in če preseže 10, to ni normalno, stanje strežnika pa je zelo nevarno. Obremenitev vrha je podobna kot pri tekoči vrsti na sekundo. Če je čakalna vrsta prevelika, to pomeni, da je vaš procesor zaposlen, kar običajno povzroča visoko obremenitev procesorja. bTo pomeni blokiran proces, to ni veliko za povedati, proces je blokiran, vsi razumejo. SWPDČe je velikost uporabljenega navideznega pomnilnika večja od 0, to pomeni, da ima vaš računalnik premalo fizičnega pomnilnika, in če to ni vzrok za uhajanje pomnilnika v programu, je čas, da pomnilnik nadgradite ali prenesete pomnilniške naloge, ki porabljajo pomnilnik, na drug računalnik. brezplačno Velikost prostega fizičnega pomnilnika, moj strojni pomnilnik je skupaj 8G, preostalih pa 3415M. Okrepljen Linux/Unix sistem se uporablja za shranjevanje, kakšno vsebino v mapi, dovoljenja itd. predpomnilnik, verjetno zasedam več kot 300 milijonov na tem računalniku PredpomnilnikPredpomnilnik se neposredno uporablja za pomnjenje datotek, ki jih odpremo, shranjevanje datotek, na svojem računalniku zavzamem več kot 300 milijonov (tukaj je pametna stvar Linuxa/Unixa, da del prostega fizičnega pomnilnika vzamem za predpomnjenje datotek in imenikov, da izboljšamo izvajanje programa, ko program uporablja pomnilnik, se medpomnilnik/predpomnilnik hitro porabi). ) si Če je ta vrednost večja od 0, to pomeni, da fizični pomnilnik ni dovolj ali da pomnilnik uhaja. Moj računalnik ima veliko pomnilnika in vse je v redu. torej Velikost diska, zapisanega v virtualni pomnilnik na sekundo, če je ta vrednost večja od 0, je enaka kot zgoraj. bi Blok opremaŠtevilo blokov, prejetih na sekundo, tukaj blok naprava označuje vse diske in druge blok naprave v sistemu, privzeta velikost bloka je 1024 bajtov, na stroju nimam nobene vhodno-izhodne operacije, zato je vedno 0, vendar sem to videl na računalnikih, ki obdelujejo velike količine podatkov (2-3T), lahko doseže 140000/s, hitrost pisanja na disk pa je skoraj 140M na sekundo boŠtevilo blokov, ki jih na sekundo pošlje blok naprava, na primer, ko beremo datoteko, bo, je večje od 0. BI in BO sta običajno blizu 0, sicer je IO preveč pogost in ga je treba prilagoditi. vŠtevilo prekinitev na sekundo procesorja, vključno s časovnimi prekinitvami CSŠtevilo preklopov konteksta na sekundo, na primer, ko kličemo sistemsko funkcijo, moramo zamenjati kontekst in preklapljanje nitiKontekst procesaNa primer, na spletnih strežnikih, kot sta Apache in nginx, običajno izvajamo teste zmogljivosti s tisoči ali celo desettisoči sočasnosti, proces izbire spletnega strežnika pa lahko znižamo za vrh procesa ali niti, torej stresni test, dokler CS ne doseže relativno majhne vrednosti, število procesov in niti je bolj ustrezna vrednost. Sistemski klici so prav tako enaki – vsakič, ko je sistemska funkcija poklicana, naša koda vstopi v jedrni prostor, kar povzroči preklapljanje konteksta, kar zelo porabi vire, zato se moramo izogibati pogostim klicem sistemskih funkcij. Preveč preklapljanja konteksta pomeni, da je večina procesorja zapravljena za preklapljanje konteksta, kar pomeni manj časa za resne naloge, procesor pa ni popolnoma izkoriščen, kar ni priporočljivo. miuporabnikCPU časEnkrat sem videl, da je v ZDA blizu 100 in da je r tekoča čakalna vrsta dosegla 80 na strežniku, ki je zelo pogosto izvajal šifriranje in dešifriranje (stroj je bil pod stresnim testiranjem in zmogljivost ni bila dobra). syČe je čas procesorja sistema prevelik, to pomeni, da so sistemski klici dolgi, na primer pri pogostih IO operacijah. Id Čas mirovanja procesorja, na splošno id + us + sy = 100, na splošno mislim, da id pomeni porabo procesorja v mirovanju, us uporabniško porabo, sy pa sistemsko porabo procesorja. WTPočakaj na čas IO procesorja.
|