Ich muss eine Speicherauslastung in% von vmstat erhalten, aber ich verstehe einige der Zahlen, die sich auf den in vmstat angezeigten Speicher beziehen, nicht ganz.
Insbesondere bei einer solchen Ausgabe
procs -----------memory---------- ---swap-- -----io---- --system-- -----cpu------
r b swpd free buff cache si so bi bo in cs us sy id wa st
1 0 139728 45396 199128 1236360 1 2 4 622 3 1 51 4 43 2 0
Wie groß ist der Gesamtspeicher des Systems? Ist es 'swpd' + 'free' + 'buff' + 'cache', was insgesamt 1620612 ergibt?
Was ist die freie Speichermenge des Systems? Ist es 45396, wie in der Spalte "frei" angezeigt?
Das Problem ist, dass sie sich nicht summieren oder auch nur annähernd dem entsprechen, was "top" gemeldet hat. Die Ausgabe von 'top', die ich ungefähr zur gleichen Zeit wie 'vmstat's oben aufgenommen habe, ist:
[...]
Mem: 4059616k total, 3965504k used, 94112k free, 200020k buffers
[...]
Also ... Ich gehe davon aus, dass es in 'vmstat' versteckte Zahlen / Optionen geben muss, von denen ich nichts wusste?
Ich muss 'vmstat' für diesen Zweck verwenden und keine anderen Befehle, da dies in der Anforderung angegeben ist.
Im Idealfall möchte ich mit 'vmstat' die prozentuale Speichernutzung erreichen, wie in:
<used_memory>/<total_memory> * 100%.
Vielen Dank!
Antworten:
Was Sie suchen, ist die Ausgabe von "kostenlos":
Hier ist eine Tour:
Dies ist eine Box mit 768 MB physischem RAM und einer 500344 KB Swap-Partition.
759456KB wird "verwendet" (zweite Spalte, obere Zeile). Von diesem "verwendeten" Speicher sind 23132 KB Puffer (5. Spalte, obere Zeile) und 592484 KB (sechste Spalte, obere Zeile) Cache, so dass 144840 KB (2. Spalte, 2. Zeile) physischen Speicher verbleiben, 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) physischer Speicher frei.
Die Swap-Partition ist, wie gesagt, 500344 KB (1. Spalte, untere Zeile). 21972 KB (2. Spalte, untere Zeile) der Auslagerungsdatei werden verwendet, sodass 478372 KB (3. Spalte, untere Zeile) 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 genug geben, um einen Prozentsatz zu berechnen, wie Sie es für richtig halten.
Hier ist die Ausgabe von top und kostenlos:
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 spiegelt sich dort wider).
Fügen Sie ein "-s" hinzu, wenn Sie vmstate aufrufen, und Sie sehen fast dieselbe Ausgabe, nur in einer anderen Form:
Sie können sehen, dass vmstat alle die gleichen Nummern wie kostenlos anzeigt.
quelle
Ich habe die gleiche Frage an Sie und habe eine Formel
Ich habe es auf vmstat Version von procps-ng 3.3.10 und vmstat von procps-ng 3.3.9 getestet
quelle
Ich würde empfehlen, dass Sie dieses IBM Redbook "Linux Performance and Tuning Guidelines" ( http://www.redbooks.ibm.com/abstracts/redp4285.html?Open ) lesen . Es enthält Details zu den Daten, die von zahlreichen Befehlen zurückgegeben werden, und sollte Ihnen helfen.
Ich habe normalerweise den Befehl "free" unter Linux oder "cat / proc / meminfo" verwendet.
quelle
Hier ist eine POSIX- Shell-Funktion, die den gewünschten Prozentsatz auf die nächste Ganzzahl abrundet (für Skriptzwecke kann dies nützlicher sein, da arithmetische POSIX- Shell-Vergleichstests nur mit Ganzzahlen funktionieren):
Ausgabe (auf meinem System):
Gleiches gilt für
free
:quelle