Ich versuche, den verwendeten Speicher (RAM) in Prozent mithilfe von Linux-Befehlen abzurufen. Mein cpanel zeigt den verwendeten Speicher an, den ich auf einer bestimmten Webseite anzeigen muss.
In den Foren habe ich festgestellt, dass der richtige Speicher folgendermaßen ermittelt werden kann:
free -m
Ergebnis:
-/+ buffers/cache: 492 1555
- / + Puffer / Cache: Enthält die korrekte Speichernutzung. Ich weiß nicht, wie ich diese Informationen analysieren soll oder ob es einen anderen Befehl gibt, um den verwendeten Speicher in Prozent zu ermitteln.
free | grep Mem | awk '{print $4/$2 * 100.0}'
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}'
Antworten:
Hier ist eine Beispielausgabe von free:
Die erste Zeile der Nummern (
Mem:
) wird aufgelistettotal
Erinnerungused
Erinnerungfree
Erinnerungshared
buffers
cached
)In dieser Zeile
used
sind die Puffer und der Cache enthalten und dies wirkt sich kostenlos aus. Dies ist nicht Ihr "wahrer" freier Speicher, da das System den Cache bei Bedarf entleert, um Zuordnungsanforderungen zu erfüllen.Die nächste Zeile (
-/+ buffers/cache:
) gibt den tatsächlich verwendeten und freien Speicher an, als ob es keine Puffer oder Cache gäbe.Die letzte Zeile (
Swap
) gibt die Verwendung des Auslagerungsspeichers an. Es gibt keinen Puffer oder Cache für den Austausch, da es nicht sinnvoll wäre, diese Dinge auf einer physischen Festplatte abzulegen.Um den belegten Speicher (abzüglich Puffer und Cache) auszugeben, können Sie einen Befehl wie den folgenden verwenden:
Dies greift nach der dritten Zeile und dividiert used / total * 100.
Und für freien Speicher:
quelle
free
,"-/+ buffers/cache
absichtlich komplett weggelassen wird und der in derused
Spalte angezeigte Wert jetzt standardmäßig die Puffer und den Cache ausschließt. Siehe hier: bugzilla.redhat.com/show_bug.cgi?id=1158828Ich werde erwähnen, wie die Informationen auf
free
Befehl zu analysieren sind . Um den Prozentsatz zu finden, können Sie wie in den anderen 2 Antworten vorgeschlagen verwenden.Dies wird deutlich erklärt hier . Ich würde versuchen zu erklären, was ich in meinem System habe.
Lassen Sie uns nun sehen, was die verschiedenen Zahlen tatsächlich bedeuten.
Linie 1
Zeile 2
Wie berechnet man die in Zeile 2 erhaltenen Werte 696 und 7173?
Total used ( 4402 ) - Gesamtpuffer-RAM ( 208 ) - Der Gesamt-RAM zum Zwischenspeichern ( 3497 ) sollte den tatsächlich verwendeten RAM im System darstellen. Es gibt mir 697 zurück, was die tatsächlich verwendete RAM- Ausgabe in der zweiten Zeile ist.
Nun Total Available ( 7869 ) - Tatsächliche Gebraucht ( 696 ) sollen Ihnen die gibt freie Speicher , das ist 7173 in diesem Fall , das auch als Ausgang in der zweiten Zeile bekommt ist.
quelle
Obwohl es sich um ein Duplikat handelt , auf das @szboardstretcher hinweist, ist meine Präferenz für die Lösungen (in der ursprünglichen Frage) die folgende, insbesondere, da Sie eine Analyse auf einer Webseite durchführen möchten.
Ausgabe:
quelle
used: 96.00%, buffers: 26.53%awk: (FILENAME=- FNR=4) fatal: division by zero attempted
$ cat /etc/issue CentOS release 6.7 (Final)
$ free | awk '/Mem/{printf("used: %.2f%"), $3/$2*100} /buffers\/cache/{printf(", buffers: %.2f%"), $4/($3+$4)*100} /Swap/{printf(", swap: %.2f%"), $3/$2*100}' used: 12.91%, buffers: 96.24%awk: (FILENAME=- FNR=4) fatal: division by zero attempted $ free total used free shared buffers cached Mem: 15429704 1991416 13438288 164 151556 1259584 -/+ buffers/cache: 580276 14849428 Swap: 0 0 0
Fügt nach der Auslagerungsnummer eine neue Zeile ein
quelle
Für bis zu CentOS 7 können Sie es versuchen
um die tatsächliche Nutzung des Speichers durch Prozesse zu sehen.
quelle