GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie bekomme ich % Speicherauslastung mit vmstat?

Was Sie suchen, ist die Ausgabe von "free":

$ free
             total       used       free     shared    buffers     cached
Mem:        775556     759456      16100          0      22132     592484
-/+ buffers/cache:     144840     630716
Swap:       500344      21972     478372

Hier ist eine Tour:

Dies ist eine Box mit 768 MB physischem RAM und einer 500344 KB großen Swap-Partition.

759456KB ist "benutzt" (zweite Spalte, obere Reihe). Von diesem „benutzten“ Speicher sind 23.132 KB Puffer (5. Spalte, oberste Reihe) und 592.484 KB (sechste Spalte, oberste Reihe) Cache, sodass 144.840 KB (2. Spalte, 2. Reihe) physischer Speicher übrig bleiben, der von aktiven Prozessen verwendet wird.

Wenn Sie bedenken, dass der von Puffern und Cache verwendete Speicher für Prozesse verwendet werden könnte, bleiben 630716 KB (3. Spalte, 2. Zeile) an physischem Speicher frei.

Die Swap-Partition ist, wie gesagt, 500344 KB groß (1. Spalte, untere Reihe). 21972 KB (2. Spalte, untere Reihe) der Auslagerungsdatei sind belegt, sodass 478.372 KB (3. Spalte, untere Reihe) frei bleiben.

Ihre Definition von % freiem Speicher hängt also davon ab, ob Sie Puffer und Cache zählen oder nicht und ob Sie Swap zählen oder nicht.

Das sollte Ihnen reichen, um einen Prozentsatz zu berechnen, wie Sie es für richtig halten.

Hier ist die Ausgabe von top and free:

$ top -n1 | grep "used," ; free
Mem:    775556k total,   751472k used,    24084k free,    20776k buffers
Swap:   500344k total,    21972k used,   478372k free,   586648k cached

             total       used       free     shared    buffers     cached
Mem:        775556     751344      24212          0      20776     586648
-/+ buffers/cache:     143920     631636
Swap:       500344      21972     478372

Sie können sehen, wie Top und Free übereinstimmen (wenn auch mit einem kleinen Unterschied – dies ist ein Mehrbenutzer-Computer und die Speichernutzung der Top- und Free-Programme wird darin widergespiegelt).

Fügen Sie ein "-s" hinzu, wenn Sie vmstate aufrufen, und Sie werden fast die gleiche Ausgabe sehen, nur in einer anderen Form:

$ vmstat -s ; free
       775556  total memory
       759920  used memory
       674680  active memory
        18440  inactive memory
        15636  free memory
        21892  buffer memory
       594372  swap cache
       500344  total swap
        21972  used swap
       478372  free swap
       ... output truncated ...

             total       used       free     shared    buffers     cached
Mem:        775556     759920      15636          0      21892     594372
-/+ buffers/cache:     143656     631900
Swap:       500344      21972     478372

Sie können sehen, dass vmstat alle die gleichen Zahlen als kostenlos anzeigt.


Ich habe dieselbe Frage wie Sie und habe eine Formel

vmstat -s | awk  ' $0 ~ /total memory/ {total=$1 } $0 ~/free memory/ {free=$1} $0 ~/buffer memory/ {buffer=$1} $0 ~/cache/ {cache=$1} END{print (total-free-buffer-cache)/total*100}'

Ich habe es auf der vmstat-Version von procps-ng 3.3.10 und vmstat von procps-ng 3.3.9 getestet


Linux
  1. Anhand von Beispielen wird die Verwendung des Vmstat-Befehls unter Linux erläutert

  2. Linux – Echte Speichernutzung?

  3. Linux – Speichernutzung unter Linux richtig ermitteln?

  4. So berechnen Sie die Speichernutzung in Linux mit sar, ps und free

  5. So erhalten Sie die CPU-Auslastung

Linux Free Command (Speichernutzung prüfen)

So visualisieren Sie die Speicherplatznutzung mit Vizex in Linux

So überprüfen Sie die Speichernutzung in Debian 10

Wie wird die Top/htop-Speichernutzung interpretiert?

Erste Schritte mit Arch Linux

Wie kann ich die Speichernutzung profilieren?