Linux Vmstat-kommando

Linux Vmstat Kommando



I den här guiden kommer vi att demonstrera de olika sätten att använda kommandot 'vmstat' i Linux.

Förutsättningar:

För att utföra stegen som visas i den här guiden behöver du följande komponenter:

  • Ett korrekt konfigurerat Linux-system. För teständamål, överväg att använda en Linux-VM .
  • Tillgång till en icke-rootanvändare med sudo-behörighet
  • Grundläggande förståelse för kommandoradsgränssnittet

Virtuellt minne i Linux

Det fysiska minnet, även kallat RAM, är begränsad till mängden. Kärnan är ansvarig för att distribuera detta utrymme till alla program som körs. Alla program som körs (inklusive operativsystemet) finns i RAM.







Men om efterfrågan på minne är högre än dess tillgängliga minne, kraschar det helt enkelt systemet (eller så kommer programmet att begära mer minnesutrymme). I de flesta situationer är det ett oönskat resultat. Det är här det virtuella minnet kommer in.



Virtuellt minne hänvisar till ett dedikerat diskutrymme på din hårddisk/SSD som kan fungera som extra minne i svåra situationer. Eftersom det fungerar som RAM-utrymme (men inte riktigt), anses det som 'virtuellt'. I UNIX/Linux-system kallas dessa utrymmen för swap-utrymmen.



Linuxkärnan flyttar minnesblocken till swap-utrymme och hämtar dem tillbaka till RAM vid behov.





Det virtuella minnets prestanda är definitivt långsammare än det fysiska minnet och är direkt proportionell mot lagringsenhetens prestanda. Men i specifika hårdvarukonfigurationer (med till exempel NVMe SSD) kan prestandan vara likvärdig med RAM.

Vmstat-kommandot

Kommandot 'vmstat' är ett övervakningsverktyg som rapporterar olika information om det virtuella minnet. Det är tillgängligt på alla Linux-system som en del av 'sysstat'-paketet.



Kommandostrukturen för 'vmstat' är som följer:

$ vmstat < alternativ > < dröjsmål > < räkna >

Grundläggande användning

Om den körs utan någon parameter, skriver 'vmstat' ut systeminformationen sedan den senaste uppstarten:

$ vmstat

Utgången är ordnad i sex segment:

  • processer : Statistik över processer som körs för närvarande
    • r : Antal aktiva processer
    • b : Antal sömnprocesser
  • minne : Statistik om minnesanvändning
    • swpd : Total mängd virtuellt minne (bytesutrymme)
    • fri : Tillgängligt bytesutrymme
    • vältränad : Mängden växlingsutrymme som används som ett tillfälligt buffertminne
    • cache : Totalt cacheminne
  • byta : Statistik om bytesutrymmet
    • Ja : Inbyteshastighet
    • : Utbyteshastighet
  • detta : I/O-statistik
    • med en : Antal block som tagits emot från blockeringsenheterna
    • vara : Antal block som skickats till blockeringsenhet(er)
  • systemet : Statistik om schemaläggning
    • i : Systemavbrott räknas
    • cs : Hastighet för kontextväxlingar
  • cpu : Olika CPU-statistik
    • oss : CPU spenderar tid på processer som inte är kärnor
    • och : CPU spenderar tid på kärnprocesser
    • id : CPU spenderar tid på tomgång
    • av : CPU spenderar tid på att vänta på att I/O-operationer ska slutföras
    • st : CPU-tid som används av en virtuell maskin

Byte av displayenhet

Som standard rapporterar 'vmstat' minnesvärdena i kilobyte. För att byta enhet, använd ' -S ' flagga:

$ vmstat -S < argument >

Här skriver 'vmstat' ut värdena i megabyte.

Det finns flera minnesenheter tillgängliga:

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

Kontinuerlig statistikuppdatering

Som standard skriver 'vmstat' ut rapporten en gång. Vi kan dock instruera 'vmstat' att tillhandahålla kontinuerliga rapporter vid ett specificerat tidsintervall (i sekunder).

Kommandostrukturen är som följer:

$ vmstat < dröjsmål >

Till exempel, för att få uppdaterad statistik varannan sekund, är kommandot följande:

$ vmstat 2

Utmatningen stoppas inte om den inte avslutas manuellt med 'Ctrl + C'.

Alternativt kan vi ange 'vmstat' för att tillhandahålla statistiken för ett visst antal gånger:

$ vmstat < dröjsmål > < räkna >

Till exempel, för att få den uppdaterade statistiken varannan sekund 5 gånger, ser kommandot ut så här:

$ vmstat 2 5

Aktivt och inaktivt minne

Aktivt minne hänvisar till det minnesutrymme som för närvarande används av en process. Å andra sidan hänvisar inaktivt minne till minnesutrymmet som tilldelades en process som inte längre körs.

Med 'vmstat' kan vi kontrollera mängden aktiva och inaktiva minnen som används:

$ vmstat -a

Här ersätts kolumnerna 'buff' och 'cache' med 'inakta' respektive 'aktiva' kolumner.

Minne och schemaläggning

För att få en mer detaljerad rapport om minne och schemaläggning, använd följande kommando:

$ vmstat -s

Här:

  • Avsnitt 1: Detta avsnitt behandlar grundläggande systeminformation som totalt fysiskt minne, aktivt/inaktivt minne, ledigt/buffert/cacheminne, etc.
  • Avsnitt 2: Olika CPU-statistik
    • Osnygga CPU-tickar : Hur många gånger de högprioriterade processerna använde processorn.
    • Fina CPU-tickar : Antalet gånger som processerna med lägre prioritet använde processorn.
    • Systemets CPU tickar : Antalet gånger kärnprocesserna använde processorn.
    • Idle CPU tickar : Antalet gånger som CPU:n har varit inaktiv.
    • IO-vänta CPU tickar : Antalet gånger CPU:n väntar på I/O-hantering.
    • IRQ : Antalet gånger CPU tog emot avbrottsbegäranden.
    • softirq : Antalet gånger processorn tog emot begäranden om programavbrott.
    • stulna CPU-tickar : Antalet gånger virtuella datorer stal CPU-tiden.
  • Avsnitt 3: Minnessökningsstatistik
  • Avsnitt 4: Händelseräknare

Gafflar sedan Boot

Forks hänvisar till processer som skapades av befintliga processer. Kör följande kommando för att få statistik om gaffelantal:

$ vmstat -f

Disk- och partitionsstatistik

Kommandot 'vmstat' kan också ge information om diskaktivitet. För att få en snabb sammanfattning av diskaktivitet, kör följande kommando:

$ vmstat -D

För att få en mer detaljerad diskaktivitetsrapport (inklusive läs/skrivstatistik), använd följande kommando istället:

$ vmstat -d

Här:

  • Läser
    • total : Totalt antal diskläsningar
    • slås samman : Totalt antal gruppläsningar
    • sektorer : Totalt antal avlästa sektorer
    • Fröken : Total tid för att läsa data från disken (i millisekunder)
  • Skriver
    • total : Totalt antal diskskrivningar
    • slås samman : Totalt antal gruppskrivningar
    • sektorer : Totalt antal skrivna sektorer
    • Fröken : Total tid att skriva till disken (i millisekunder)
  • IO
    • sätta : Totalt antal läser/skriver på disken
    • sek : Mängden tid som spenderas i pågående läs-/skrivoperation (i sekunder)

Kommandot 'vmstat' kan också generera rapporter för en specifik diskpartition. För att få partitionsrapporten, använd följande kommandostruktur:

$ vmstat -s < partitionsidentifierare >

Plattstatistik

Slab-allokering är utformad för att vara en effektiv mekanism för objektens minnesallokering. Jämfört med tidigare mekanismer erbjuder skivallokering en minskning av minnesfragmentering (orsakad av minnesallokering och -deallokering).

För att kontrollera skivstatistiken för systemet, använd följande 'vmstat'-kommando:

$ sudo vmstat -m

Observera att det kräver en root-behörighet för att se statistiken.

Här:

  • Cache : Namn på cachad data
  • på ett : Antal objekt som är aktiva i Num-cachen
  • Total : Totalt antal objekt i en viss cache
  • Storlek : Storleken på de cachade objekten
  • Sidor : Antal minnessidor som innehåller cachade objekt

Slutsats

I den här guiden visade vi upp de olika sätten att använda kommandot 'vmstat'. Förutom virtuellt minne kan 'vmstat' även rapportera om diskstatistik, gafflar, plattor och mer.

Intresserad av att lära dig om andra systemövervakningsverktyg? Lära sig mer om htop , döda , ps , etc.

Lycka till med datoranvändningen!