Tämä artikkeli on konekäännöksen peiliartikkeli, klikkaa tästä siirtyäksesi alkuperäiseen artikkeliin.

Näkymä: 9822|Vastaus: 1

Linux vmstat -komento yksityiskohtainen selitys käytännössä

[Kopioi linkki]
Julkaistu 19.10.2014 19.36.48 | | |

vmstat-komento on yleisin Linux/Unix-valvontatyökalu, joka näyttää palvelimen tilaarvot tietyllä aikavälillä, mukaan lukien palvelimen tilatSuorittimen käyttö, muistin käyttö, virtuaalisen muistin vaihto, IO-luku ja kirjoitus. Tämä komento on suosikkikomentoni Linuxin/Unixin tarkistamiseen, toinen on, että Linux/Unix on tuettu, ja toinen on se, että verrattuna ylimpään järjestelmään näen koko koneen suorittimen, muistin ja IO:n käytön, sen sijaan että näkisin vain kunkin prosessin prosessorin ja muistin käytön (eri käyttötilanteita).

Yleisesti vmstat-työkalua käytetään kahdella numeerisella parametrilla: ensimmäinen parametri on näytteistettyjen aikavälien määrä, yksikkö sekunteja ja toinen parametri näytteiden lukumäärä, kuten:


root@ubuntu:~# vmstat 2 1
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd ilmainen buff-välimuisti 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 tarkoittaa, että palvelimen tila kerätään kerran kahdessa sekunnissa, ja 1 tarkoittaa, että palvelimen tila kerätään vain kerran.

Itse asiassa hakuprosessin aikana seuraamme sitä tietyn ajan, ja jos emme halua valvoa, voimme vain lopettaa vmstatin suoraan, esimerkiksi:


root@ubuntu:~# vmstat 2  
procs -----------memory---------- ---swap-- -----io---- -system-- ----cpu----
r b swpd ilmainen buff-välimuisti 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

Tämä tarkoittaa, että vmstat kerää dataa kahden sekunnin välein ja jatkaa, kunnes lopetan ohjelman, ja lopetan ohjelman kerättyäni dataa viisi kertaa täällä.

Okei, komento esitellään, nyt aloitetaan jokaisen parametrin merkityksen selittäminen.

rSe tarkoittaa jonon ajamista (eli sitä, kuinka monta prosessia CPU:lle oikeasti varataan), testaamani palvelin on tällä hetkellä melko käyttämätön, ohjelmia ei ole käynnissä, ja kun tämä arvo ylittää suorittimien määrän, syntyy prosessorin pullonkaula. Tämä liittyy myös yläosan kuormitukseen: yleensä kuormitus on suurempi, jos se ylittää 3, korkeampi jos se ylittää 5, ja jos yli 10, se ei ole normaalia, ja palvelimen tila on erittäin vaarallinen. Yläosan kuorma on samankaltainen kuin juoksevalla jonolla sekunnissa. Jos käynnissä oleva jono on liian suuri, se tarkoittaa, että prosessori on varattu, mikä yleensä aiheuttaa korkeaa prosessorin käyttöä.

bSe tarkoittaa estettyä prosessia, tämä ei ole paljoa sanottavaa, prosessi on estynyt, kaikki ymmärtävät.

SWPDJos käytetyn virtuaalimuistin koko on suurempi kuin 0, se tarkoittaa, että koneessasi ei ole riittävästi fyysistä muistia, ja jos se ei ole ohjelman muistivuodon syy, on aika päivittää muisti tai siirtää muistia kuluttavat tehtävät toiselle koneelle.

vapaa   Vapaan fyysisen muistin koko, koneen muisti on yhteensä 8G, ja loput 3415M.

buffi   Linux/Unix-järjestelmää käytetään tallentamaan, mitä sisältöä hakemistossa, käyttöoikeudet jne. välimuistissa, minulla on todennäköisesti yli 300 miljoonaa tilaa tällä koneella

Välimuistivälimuistia käytetään suoraan avaamien tiedostojen muistamiseen, tiedostojen puskurointiin, otan yli 300 miljoonaa omalla koneellani (tässä on Linux/Unixin nerokas juttu: käyttää osa vapaasta fyysisestä muistista tiedostojen ja hakemistojen välimuistiin, jotta ohjelman suorituskyvyn paranisi, kun ohjelma käyttää muistia, puskuri/välimuisti käytetään nopeasti). )

si  Jos tämä arvo on suurempi kuin 0, se tarkoittaa, että fyysinen muisti ei riitä tai muisti vuotaa. Koneessani on runsaasti muistia ja kaikki toimii hyvin.

joten  Virtuaalimuistiin kirjoitetun levyn koko sekunnissa, jos tämä arvo on suurempi kuin 0, sama kuin yllä.

bi  LohkolaitteetVastaanotettujen lohkojen määrä sekunnissa, tässä lohkolaite viittaa kaikkiin järjestelmän levyihin ja muihin lohkolaitteisiin, oletuslohkokoko on 1024 tavua, minulla ei ole IO-toimintoa koneessa, joten se on aina ollut 0, mutta olen nähnyt sen koneissa, jotka käsittelevät suuria määriä dataa (2-3T), voivat nousta 140000/s ja levyn kirjoitusnopeus on lähes 140 M sekunnissa

boEsimerkiksi lohkolaitteen sekunnissa lähettämien lohkojen määrä on tiedostoa lukiessa, bo on suurempi kuin 0. BI ja BO ovat yleensä lähellä nollaa, muuten IO on liian yleinen ja sitä täytyy säätää.

sisäänKeskeytysten määrä suorittimen sekunnissa, mukaan lukien aikakatkot

CSKontekstikytkijöiden määrä sekunnissa, esimerkiksi, kun kutsumme järjestelmäfunktiota, meidän täytyy vaihtaa konteksteja ja säikeiden vaihtoaProsessikontekstiEsimerkiksi web-palvelimissa kuten Apache ja nginx teemme yleensä suorituskykytestejä, joissa on tuhansia tai jopa kymmeniä tuhansia samanaikaisuutta, ja web-palvelimen valintaprosessia voidaan laskea prosessin huipun tai säikeen rasitustestin mukaan, kunnes cs-arvo on suhteellisen pieni, prosessien ja säikeiden määrä on sopivampi arvo. Järjestelmäkutsut ovat myös samat: aina kun järjestelmäfunktio kutsutaan, koodimme siirtyy ytimen tilaan, mikä johtaa kontekstin vaihtoon, mikä vie paljon resursseja, ja meidän tulisi välttää toistuvia kutsuja järjestelmäfunktioihin. Liian monet kontekstin vaihdot tarkoittavat, että suurin osa prosessorista menee hukkaan kontekstin vaihtoon, mikä vähentää prosessorin aikaa vakaviin tehtäviin, eikä prosessoria käytetä täysimääräisesti, mikä ei ole suositeltavaa.

MekäyttäjäSuorittimen aikaNäin kerran, että US oli lähellä 100:aa ja r-jono nousi 80:een palvelimella, joka teki salausta ja purkua hyvin usein (kone testattiin rasituksesta, eikä suorituskyky ollut hyvä).

syJos järjestelmän suorittimen aika on liian pitkä, se tarkoittaa, että järjestelmäkutsut ovat pitkiä, kuten toistuvat IO-toiminnot.

henkilöllisyystodistus  Tyhjäkäyntisuorittimen aika on yleisesti ottaen id + us + sy = 100, yleisesti luulen että id tarkoittaa tyhjäkäyntiprosessorin käyttöä, us on käyttäjän CPU:n käyttö, sy on järjestelmän CPU:n käyttöä.

WTOdota IO-prosessorin aikaa.







Edellinen:Söpö
Seuraava:Merenranta on mukava
Julkaistu 19.10.2014 19.40.57 |
En voi ymmärtää
Vastuuvapauslauseke:
Kaikki Code Farmer Networkin julkaisemat ohjelmistot, ohjelmamateriaalit tai artikkelit ovat tarkoitettu vain oppimis- ja tutkimustarkoituksiin; Yllä mainittua sisältöä ei saa käyttää kaupallisiin tai laittomiin tarkoituksiin, muuten käyttäjät joutuvat kantamaan kaikki seuraukset. Tämän sivuston tiedot ovat peräisin internetistä, eikä tekijänoikeuskiistat liity tähän sivustoon. Sinun tulee poistaa yllä oleva sisältö kokonaan tietokoneeltasi 24 tunnin kuluessa lataamisesta. Jos pidät ohjelmasta, tue aitoa ohjelmistoa, osta rekisteröityminen ja hanki parempia aitoja palveluita. Jos rikkomuksia ilmenee, ota meihin yhteyttä sähköpostitse.

Mail To:help@itsvse.com