Linux Vmstat-kommando

Linux Vmstat Kommando



I denne veiledningen vil vi demonstrere de ulike måtene å bruke 'vmstat'-kommandoen på i Linux.

Forutsetninger:

For å utføre trinnene som er demonstrert i denne veiledningen, trenger du følgende komponenter:

  • Et riktig konfigurert Linux-system. For testformål, vurdere å bruke en Linux VM .
  • Tilgang til en ikke-rootbruker med sudo-privilegium
  • Grunnleggende forståelse av kommandolinjegrensesnittet

Virtuelt minne i Linux

Det fysiske minnet, også referert til som RAM, er begrenset i mengde. Kjernen er ansvarlig for å distribuere denne plassen til alle de kjørende programmene. Alle de kjørende programmene (inkludert OS) ligger i RAM.







Men hvis etterspørselen etter minne er høyere enn tilgjengelig minne, krasjer det ganske enkelt systemet (eller programmet vil be om mer minneplass). I de fleste situasjoner er det et uønsket resultat. Det er her virtuelt minne kommer inn.



Virtuelt minne refererer til en dedikert diskplass på din HDD/SSD som kan fungere som ekstra minne i vanskelige situasjoner. Fordi den fungerer som RAM-plass (men egentlig ikke), anses den som 'virtuell'. I UNIX/Linux-systemer blir disse plassene referert til som bytteplasser.



Linux-kjernen flytter minneblokkene til bytteplass og henter dem tilbake til RAM etter behov.





Ytelsen til det virtuelle minnet er definitivt tregere enn det fysiske minnet og er direkte proporsjonal med ytelsen til lagringsenheten. Men i spesifikke maskinvarekonfigurasjoner (for eksempel ved å bruke NVMe SSD), kan ytelsen tilsvare RAM.

Vmstat-kommandoen

Kommandoen 'vmstat' er et overvåkingsverktøy som rapporterer forskjellig informasjon om det virtuelle minnet. Den er tilgjengelig på alle Linux-systemer som en del av 'sysstat'-pakken.



Kommandostrukturen til 'vmstat' er som følger:

$ vmstat < alternativer > < forsinkelse > < telle >

Grunnleggende bruk

Hvis den kjøres uten noen parameter, skriver 'vmstat' ut systeminformasjonen siden siste oppstart:

$ vmstat

Utgangen er ordnet i seks segmenter:

  • prosesser : Statistikk over prosesser som kjører for øyeblikket
    • r : Antall aktive prosesser
    • b : Antall soveprosesser
  • hukommelse : Statistikk over minnebruk
    • swpd : Total mengde virtuelt minne (bytteplass)
    • gratis : Tilgjengelig bytteplass
    • buff : Mengden bytteplass som brukes som et midlertidig bufferminne
    • cache : Totalt cache-minne
  • bytte : Statistikk om bytteplassen
    • Ja : Byttehastighet
    • : Byttehastighet
  • dette : I/O-statistikk
    • med en : Antall blokker mottatt fra blokkeringsenheten(e)
    • være : Antall blokker sendt til blokkeringsenhet(er)
  • system : Statistikk om planlegging
    • i : Systemavbrudd teller
    • cs : Hastighet for kontekstbytter
  • prosessor : Ulike CPU-statistikker
    • oss : CPU bruker tid på ikke-kjerneprosesser
    • og : CPU bruker tid på kjerneprosesser
    • id : CPU bruker tid på tomgang
    • av : CPU bruker tid på å vente på at I/O-operasjoner skal fullføres
    • st : CPU-tid brukt av en virtuell maskin

Bytte av displayenheten

Som standard rapporterer 'vmstat' minneverdiene i kilobyte. For å endre enheten, bruk ' -S ' flagg:

$ vmstat -S < argument >

Her skriver 'vmstat' ut verdiene i megabyte.

Det er flere minneenheter tilgjengelig:

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

Kontinuerlig statistikkoppdatering

Som standard skriver 'vmstat' ut rapporten én gang. Vi kan imidlertid instruere 'vmstat' til å gi kontinuerlige rapporter med et spesifisert tidsintervall (i sekunder).

Kommandostrukturen er som følger:

$ vmstat < forsinkelse >

For eksempel, for å få oppdatert statistikk hvert 2. sekund, er kommandoen som følger:

$ vmstat 2

Utgangen vil ikke stoppe med mindre den avsluttes manuelt med 'Ctrl + C'.

Alternativt kan vi spesifisere 'vmstat' for å gi statistikken for et bestemt antall ganger:

$ vmstat < forsinkelse > < telle >

For eksempel, for å få oppdatert statistikk hvert 2. sekund 5 ganger, ser kommandoen slik ut:

$ vmstat 2 5

Aktivt og inaktivt minne

Aktivt minne refererer til minneplassen som for øyeblikket brukes av en prosess. På den annen side refererer inaktivt minne til minneplassen som ble tildelt en prosess som ikke lenger kjører.

Ved å bruke 'vmstat' kan vi sjekke mengden aktive og inaktive minner som brukes:

$ vmstat -en

Her erstattes kolonnene 'buff' og 'cache' med henholdsvis 'inakte' og 'aktive' kolonner.

Minne og planlegging

For å få en mer detaljert rapport om minne og planlegging, bruk følgende kommando:

$ vmstat -s

Her:

  • Del 1: Denne delen omhandler grunnleggende systeminformasjon som totalt fysisk minne, aktivt/inaktivt minne, ledig/buffer/bufferminne, etc.
  • Del 2: Ulike CPU-statistikker
    • Ikke-fine CPU-tikker : Hvor mange ganger de høyprioriterte prosessene brukte CPU.
    • Fine CPU-tikker : Antall ganger de lavere prioriterte prosessene brukte CPU.
    • System CPU tikker : Antall ganger kjerneprosessene brukte CPU.
    • Inaktiv CPU tikker : Antall ganger CPU har stått inaktiv.
    • IO-vent CPU tikker : Antall ganger CPU venter på I/O-administrasjon.
    • IRQ : Antall ganger CPU mottok avbruddsforespørslene.
    • softirq : Antall ganger CPU mottok programvareavbruddsforespørslene.
    • stjålne CPU-merker : Antall ganger VM-er stjal CPU-tiden.
  • Seksjon 3: Minnesøkingsstatistikk
  • Seksjon 4: Hendelsestellere

Gafler siden Boot

Forks refererer til prosesser som ble skapt av eksisterende prosesser. For å få statistikk over gaffelantall, kjør følgende kommando:

$ vmstat -f

Disk- og partisjonsstatistikk

Kommandoen 'vmstat' kan også gi informasjon om diskaktivitet. For å få en rask oppsummering av diskaktivitet, kjør følgende kommando:

$ vmstat -D

For å få en mer detaljert diskaktivitetsrapport (inkludert lese-/skrivestatistikk), bruk følgende kommando i stedet:

$ vmstat -d

Her:

  • Leser
    • Total : Totalt antall diskavlesninger
    • slått sammen : Totalt antall gruppelesinger
    • sektorer : Totalt antall leste sektorer
    • ms : Total tid for å lese dataene fra disken (i millisekunder)
  • Skriver
    • Total : Totalt antall diskskrivinger
    • slått sammen : Totalt antall skrivere i gruppen
    • sektorer : Totalt antall skrevet sektorer
    • ms : Total tid for å skrive til disken (i millisekunder)
  • IO
    • sette : Total disk leser/skriver
    • sek : Tid brukt i pågående lese-/skriveoperasjon (i sekunder)

Kommandoen 'vmstat' kan også generere rapporter for en bestemt diskpartisjon. For å få partisjonsrapporten, bruk følgende kommandostruktur:

$ vmstat -s < partisjonsidentifikator >

Platestatistikk

Plateallokering er designet for å være en effektiv mekanisme for objektenes minneallokering. Sammenlignet med tidligere mekanismer tilbyr plateallokering en reduksjon av minnefragmentering (forårsaket av minneallokering og deallokering).

For å sjekke platestatistikken til systemet, bruk følgende 'vmstat'-kommando:

$ sudo vmstat -m

Merk at det krever en root-tillatelse for å se statistikken.

Her:

  • Cache : Navnet på de hurtigbufrede dataene
  • på en : Antall objekter som er aktive i Num-bufferen
  • Total : Totalt antall objekter i en bestemt hurtigbuffer
  • Størrelse : Størrelsen på de bufrede objektene
  • Sider : Antall minnesider som inneholder de bufrede objektene

Konklusjon

I denne veiledningen viste vi frem de forskjellige måtene å bruke 'vmstat'-kommandoen på. I tillegg til virtuelt minne, kan 'vmstat' også rapportere om diskstatistikk, gafler, plater og mer.

Interessert i å lære om andre systemovervåkingsverktøy? Lære mer om htop , drepe , ps , etc.

Lykke til med databehandling!