Linux Vmstat kommando

Linux Vmstat Kommando



I denne vejledning vil vi demonstrere de forskellige måder at bruge kommandoen 'vmstat' på i Linux.

Forudsætninger:

For at udføre de trin, der er vist i denne vejledning, skal du bruge følgende komponenter:

  • Et korrekt konfigureret Linux-system. Til testformål, overveje at bruge en Linux VM .
  • Adgang til en ikke-root-bruger med sudo-privilegium
  • Grundlæggende forståelse af kommandolinjegrænsefladen

Virtuel hukommelse i Linux

Den fysiske hukommelse, også kaldet RAM, er begrænset i mængde. Kernen er ansvarlig for at distribuere denne plads til alle de kørende programmer. Alle de kørende programmer (inklusive OS) ligger i RAM.







Men hvis efterspørgslen efter hukommelse er højere end dens tilgængelige hukommelse, styrter det simpelthen systemet (eller programmet vil bede om mere hukommelsesplads). I de fleste situationer er det et uønsket resultat. Det er her, virtuel hukommelse kommer ind.



Virtuel hukommelse refererer til en dedikeret diskplads på din HDD/SSD, der kan fungere som ekstra hukommelse i svære situationer. Fordi det fungerer som RAM-plads (men egentlig ikke), betragtes det som 'virtuelt'. I UNIX/Linux-systemer omtales disse rum som swap-pladser.



Linux-kernen flytter hukommelsesblokkene til swap-plads og henter dem tilbage til RAM efter behov.





Ydeevnen af ​​den virtuelle hukommelse er absolut langsommere end den fysiske hukommelse og er direkte proportional med lagringsenhedens ydeevne. I specifikke hardwarekonfigurationer (f.eks. ved hjælp af NVMe SSD) kan ydeevnen dog svare til RAM.

Vmstat-kommandoen

Kommandoen 'vmstat' er et overvågningsværktøj, der rapporterer forskellige oplysninger om den virtuelle hukommelse. Den er tilgængelig på alle Linux-systemer som en del af 'sysstat'-pakken.



Kommandostrukturen for 'vmstat' er som følger:

$ vmstat < muligheder > < forsinke > < tælle >

Grundlæggende brug

Hvis det køres uden nogen parameter, udskriver 'vmstat' systemoplysningerne siden sidste opstart:

$ vmstat

Outputtet er arrangeret i seks segmenter:

  • processer : Statistik over processer, der kører i øjeblikket
    • r : Antal aktive processer
    • b : Antal soveprocesser
  • hukommelse : Statistik om hukommelsesforbrug
    • swpd : Samlet mængde virtuel hukommelse (swap plads)
    • gratis : Ledig bytteplads
    • buff : Mængden af ​​swap-plads, der bruges som en midlertidig bufferhukommelse
    • cache : Samlet cachehukommelse
  • bytte rundt : Statistik om byttepladsen
    • Ja : Indbyttehastighed
    • : Udskiftningshastighed
  • det her : I/O statistik
    • med en : Antal blokke modtaget fra blokenhed(erne)
    • være : Antal blokke sendt til blokeringsenhed(er)
  • system : Statistik om skemalægning
    • i : Systemafbrydelser tæller
    • cs : Rate af kontekstskift
  • cpu : Diverse CPU-statistikker
    • os : CPU bruger tid på ikke-kerne processer
    • og : CPU bruger tid på kerneprocesser
    • id : CPU bruger tid på tomgang
    • af : CPU'en bruger tid på at vente på, at I/O-operationer er fuldført
    • st : CPU-tid brugt af en virtuel maskine

Udskiftning af displayenhed

Som standard rapporterer 'vmstat' hukommelsesværdierne i kilobyte. For at ændre enheden skal du bruge ' -S ' flag:

$ vmstat -S < argument >

Her udskriver 'vmstat' værdierne i megabyte.

Der er flere tilgængelige hukommelsesenheder:

  • M : 1048576 bytes (2^20 byte)
  • m : 1000000 bytes (1000 kilobyte)
  • K : 1024 bytes (1 megabyte)
  • k : 1000 bytes (1 kilobyte)

Løbende opdatering af statistik

Som standard udskriver 'vmstat' rapporten én gang. Vi kan dog instruere 'vmstat' til at levere kontinuerlige rapporter med et bestemt tidsinterval (i sekunder).

Kommandostrukturen er som følger:

$ vmstat < forsinke >

For eksempel, for at få den opdaterede statistik hvert andet sekund, er kommandoen som følger:

$ vmstat 2

Outputtet stopper ikke, medmindre det manuelt afsluttes med 'Ctrl + C'.

Alternativt kan vi angive 'vmstat' for at give statistikken for et bestemt antal gange:

$ vmstat < forsinke > < tælle >

For eksempel, for at få den opdaterede statistik hvert 2. sekund 5 gange, ser kommandoen sådan ud:

$ vmstat 2 5

Aktiv og inaktiv hukommelse

Aktiv hukommelse refererer til den hukommelsesplads, der i øjeblikket bruges af en proces. På den anden side refererer inaktiv hukommelse til den hukommelsesplads, der blev tildelt en proces, der ikke længere kører.

Ved at bruge 'vmstat' kan vi kontrollere mængden af ​​aktive og inaktive hukommelser, der bruges:

$ vmstat -en

Her er kolonnerne 'buff' og 'cache' erstattet af henholdsvis 'inakte' og 'aktive' kolonner.

Hukommelse og planlægning

For at få en mere detaljeret rapport om hukommelse og planlægning skal du bruge følgende kommando:

$ vmstat -s

Her:

  • Afsnit 1: Dette afsnit omhandler de grundlæggende systemoplysninger som samlet fysisk hukommelse, aktiv/inaktiv hukommelse, ledig/buffer/cache-hukommelse osv.
  • Afsnit 2: Forskellige CPU-statistikker
    • Ikke-pæne CPU-tikker : Hvor mange gange de højprioriterede processer brugte CPU'en.
    • Gode ​​CPU-tikker : Antallet af gange, de lavere prioritetsprocesser brugte CPU'en.
    • System CPU tikker : Antallet af gange kerneprocesserne brugte CPU'en.
    • Inaktiv CPU tikker : Antallet af gange, CPU'en har været inaktiv.
    • IO-vent CPU tikker : Antallet af gange, CPU'en venter på I/O-styring.
    • IRQ : Antallet af gange, CPU modtog afbrydelsesanmodningerne.
    • softirq : Antallet af gange, CPU'en modtog softwareafbrydelsesanmodningerne.
    • stjålne CPU-flåter : Antallet af gange, VM'er stjal CPU-tiden.
  • Afsnit 3: Hukommelsessøgestatistikker
  • Afsnit 4: Hændelsestællere

Gafler siden Boot

Forks refererer til processer, der blev affødt af eksisterende processer. For at få statistikken over gaffelantal skal du køre følgende kommando:

$ vmstat -f

Disk- og partitionsstatistik

Kommandoen 'vmstat' kan også give information om diskaktivitet. For at få en hurtig oversigt over diskaktivitet skal du køre følgende kommando:

$ vmstat -D

For at få en mere detaljeret diskaktivitetsrapport (inklusive læse/skrive-statistik), skal du bruge følgende kommando i stedet:

$ vmstat -d

Her:

  • Læser
    • Total : Samlet antal disklæsninger
    • fusioneret : Samlet antal gruppelæsninger
    • sektorer : Samlet antal læste sektorer
    • Frk : Samlet tid til at læse dataene fra disken (i millisekunder)
  • Skriver
    • Total : Samlet antal diskskrivninger
    • fusioneret : Samlet gruppe skriver tæller
    • sektorer : Samlet antal skrevne sektorer
    • Frk : Samlet tid til at skrive til disken (i millisekunder)
  • IO
    • sætte : Samlet nuværende disk læser/skriver
    • sek : Mængden af ​​tid brugt på igangværende læse-/skriveoperationer (i sekunder)

Kommandoen 'vmstat' kan også generere rapporter for en specifik diskpartition. For at få partitionsrapporten skal du bruge følgende kommandostruktur:

$ vmstat -s < partition_id >

Pladestatistik

Pladeallokering er designet til at være en effektiv mekanisme til objekternes hukommelsesallokering. Sammenlignet med tidligere mekanismer tilbyder pladeallokering en reduktion af hukommelsesfragmentering (forårsaget af hukommelsesallokering og -deallokering).

For at kontrollere systemets pladestatistikker skal du bruge følgende 'vmstat'-kommando:

$ sudo vmstat -m

Bemærk, at det kræver en root-tilladelse for at se statistikken.

Her:

  • Cache : Navnet på de cachelagrede data
  • på en : Antal objekter, der er aktive i Num-cachen
  • Total : Samlet antal objekter i en bestemt cache
  • Størrelse : Størrelsen af ​​de cachelagrede objekter
  • sider : Antal hukommelsessider, der indeholder de cachelagrede objekter

Konklusion

I denne vejledning viste vi de forskellige måder at bruge kommandoen 'vmstat' på. Udover virtuel hukommelse kan 'vmstat' også rapportere om diskstatistikker, gafler, plader og mere.

Interesseret i at lære om andre systemovervågningsværktøjer? Lær mere om htop , dræbe , ps , etc.

God computer!