|
vmstat käsk on kõige levinum Linux/Unix jälgimistööriist, mis kuvab serveri olekuväärtusi kindlal ajavahemikul, sealhulgas serveriProtsessori kasutus, mälukasutus, virtuaalmälu vahetus, IO lugemine ja kirjutamine. See käsk on minu lemmikkäsk Linuxi/Unixi kontrollimiseks, üks on see, et Linux/Unix on toetatud, ja teine on see, et võrreldes ülemisega näen kogu masina protsessori, mälu ja IO kasutust, mitte ainult iga protsessi CPU ja mälukasutust (erinevad kasutusstsenaariumid). Üldiselt kasutatakse vmstat tööriista kahe numbrilise parameetri abil: esimene parameeter on proovitud ajavahemike arv, ühik on sekundid ja teine parameeter on proovide arv, näiteks:
root@ubuntu:~# vmstat 2 1 procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU---- r b swpd tasuta buffi cache si so bi bo in cs us sy id wa 1 0 0 3498472 315836 3819540 0 0 0 1 2 0 0 0 100 0 2 tähendab, et serveri olek kogutakse iga kahe sekundi järel ja 1 tähendab, et serveri olek kogutakse ainult üks kord. Tegelikult jälgime taotlusprotsessi käigus teatud aja jooksul ja kui me ei taha seda jälgida, saame vmstati otse lõpetada, näiteks:
root@ubuntu:~# vmstat 2 procs -----------memory---------- ---swap-- -----io---- -system-- ----CPU---- r b swpd tasuta buffi cache si so bi bo in cs us sy id 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
See tähendab, et vmstat kogub andmeid iga 2 sekundi järel ja jätkab kuni programmi lõpetamiseni, ning lõpetan programmi pärast andmete kogumist 5 korda. Olgu, käsk on sisse toodud, nüüd hakkame selgitama iga parameetri tähendust. rSee tähendab järjekorra käivitamist (ehk kui palju protsesse tegelikult CPU-le eraldatakse), server, mida testisin, on hetkel suhteliselt tühi, ühtegi programmi ei tööta, kui see väärtus ületab CPU-de arvu, tekib CPU kitsaskoht. See on seotud ka ülemise taseme koormusega – üldiselt on koormus suurem, kui see ületab 3, kõrgem, kui ületab 5, ja kui ületab 10, pole see normaalne ning serveri seisund on väga ohtlik. Ülemise osa koormus on sarnane jooksva järjekorra sekundiga. Kui jooksev järjekord on liiga suur, tähendab see, et protsessor on hõivatud, mis tavaliselt põhjustab suurt CPU kasutust. bSee tähendab, et blokeeritud protsess, see pole palju öelda, protsess on blokeeritud, kõik saavad aru. SWPDKui kasutatava virtuaalmälu suurus on suurem kui 0, tähendab see, et sinu arvutil pole piisavalt füüsilist mälu, ja kui see ei ole programmi mälulekke põhjus, on aeg mälu uuendada või mälu tarbivad ülesanded teisele masinale üle viia. vaba Vaba füüsilise mälu suurus, minu masina mälu kokku on 8G ja ülejäänud 3415M. Buff Linux/Unix süsteemi kasutatakse kataloogi sisu, õiguste jms salvestamiseks, mul on sellel masinal ilmselt üle 300 miljoni ruumi Vahemälucache'i kasutatakse otse failide mäletamiseks, mida me avame, failide puhverdamiseks, ma võtan oma arvutis üle 300M (siin on nutikas Linux/Unix lahendus – võtan osa vabast füüsilisest mälust failide ja kataloogide vahemällu salvestamiseks, et parandada programmi täitmise jõudlust; kui programm kasutab mälu, kasutatakse puhvrit/vahemällu kiiresti). ) si Kui see väärtus on suurem kui 0, tähendab see, et füüsiline mälu ei ole piisav või mälu lekib. Minu masinal on piisavalt mälu ja kõik on korras. nii et Ketta suurus, mis on kirjutatud virtuaalmällu sekundis, kui see väärtus on suurem kui 0, on sama mis eespool. bi PlokiseadmedBlokkide arv sekundis, siin viitab plokiseade kõigile kettatele ja teistele plokiseadmetele süsteemis, vaikimisi ploki suurus on 1024 baiti, mul pole masinal IO operatsiooni, seega on see alati olnud 0, kuid olen näinud, et masinatel, mis töötlevad suuri andmemahtusi (2-3T), võib see ulatuda 140000/s ja ketta kirjutamiskiirus on peaaegu 140M sekundis boPlokkide arv, mida plokiseade sekundis saadab, näiteks faili lugemisel on bo suurem kui 0. BI ja BO on üldiselt 0 lähedal, muidu on IO liiga sage ja vajab kohandamist. seesCPU katkestuste arv sekundis, kaasa arvatud ajakatkestused CSKonteksti lülitite arv sekundis, näiteks kui kutsume süsteemifunktsiooni, peame vahetama kontekste ja lõimevahetustProtsessi kontekstNäiteks veebiserverites nagu Apache ja nginx teeme tavaliselt jõudlusteste tuhandete või isegi kümnete tuhandete samaaegsusega ning veebiserveri valimise protsessi saab protsessi või lõime tipu võrra vähendada stressitesti, kuni cs suhteliselt väikese väärtuseni, protsesside ja lõimede arv on sobivam väärtus. Süsteemikutsed on samuti samad, iga kord, kui süsteemifunktsioon kutsutakse, siseneb meie kood kerneli ruumi, mis põhjustab konteksti vahetust, mis on väga ressursimahukas, ning peaksime vältima sagedasi süsteemifunktsioonide kutseid. Liiga palju konteksti vahetusi tähendab, et enamik protsessorist läheb konteksti vahetamisele, mis vähendab protsessoril aega tõsiste asjade tegemiseks ning protsessorit ei kasutata täielikult, mis pole soovitatav. meiekasutajaCPU aegKord nägin, et USA-s oli peaaegu 100 ja R jooksujärjekord jõudis 80-ni serveris, mis tegi krüpteerimist ja dekrüpteerimist väga tihti (masin oli stressitestitud ja jõudlus polnud hea). syKui süsteemi protsessori aeg on liiga pikk, tähendab see, et süsteemikõned on pikad, näiteks sagedased IO operatsioonid. Id Vaba CPU aeg, üldiselt, id + us + sy = 100, üldiselt arvan, et id on tühikäigu CPU kasutus, us on kasutaja CPU kasutus, sy on süsteemi CPU kasutus. WTOota IO protsessori aega.
|