TL, DR 1
Ihr Server befindet sich in einer Art virtuozzo / openvz / virtualization-du-jour- Container. Der Versuch, die Speichernutzung zu verstehen, führt dazu, dass die Windmühlen kippen.
TL, DR 2
Linux hat Ihren Arbeitsspeicher aufgefressen! Aber das ist okay, es tut es allen an.
Die lange Geschichte
Lassen Sie es uns brechen!
In der Mem:
Sektion haben wir:
$n total
: Die Größe des physischen Arbeitsspeichers in Ihrem Computer
$n used
: wie viel Speicher wird von Linux verbraucht, nicht nur die Summe der Prozesse.
$n free
: Wie viel RAM wird von Linux nicht verbraucht. Dies berücksichtigt nicht, dass zwischengespeicherter und gepufferter Speicher im Wesentlichen "frei" ist.
$n buffers
: In diesem Puffer werden Blöcke der Festplatten-E / A gespeichert, die gelesen wurden oder auf die ein Schreibvorgang wartet. Ein Puffer ist eine RAM-Darstellung eines einzelnen Plattenblocks.
In der Swap:
Sektion haben wir:
$n total
: Selbsterklärend. Menge des verfügbaren Speicherplatzes zum Auslagern von Seiten.
$n used
: Selbsterklärend. Wie viel Speicherplatz für den Plattenaustausch verwendet wird.
$n free
: Ich Idiot.
$n cache
: In enger Beziehung zu den oben genannten Puffern. Es ist tatsächlich Teil des Seiten-Cache und hat selbst keinen Platz auf der physischen Festplatte. Mach dir keine Sorgen über die Details für dieses Gespräch.
Der interessante Teil kommt, wenn Sie laufen free -m
. Sie sehen drei Zeilen, und alle Zahlen entsprechen der oberen Zeile. Ich werde meinen eigenen PC als Beispiel geben:
total used free shared buffers cached
Mem: 8070 7747 323 0 253 5713
-/+ buffers/cache: 1780 6290
Swap: 5055 0 5055
Die Mem-Zeile zeigt den gesamten RAM in Megabyte ( $n total
oben), wie viel ( $n used
oben) verwendet wird, wie viel frei ( $n free
oben) ist, wie viel geteilt wird (ignoriere das) und jetzt kommt der gute Teil! Die Spalten buffers
und cached
in free -m
korrelieren vorhersehbar mit $n buffers
und $n cache
. Aber werfen Sie einen Blick auf die zweite Reihe, mit der free -m
das beginnt -/+ buffers/cache:
. Die Mathematik zeigt, dass die verwendete Menge wirklich (total) - ((used-puffer) -cached ist. Kostenlos ist (total) - (theNewUsed).
Was bedeutet das alles? Es bedeutet, dass Linux Ihren RAM gefressen hat! Die kurze Geschichte ist, dass der Linux-Kernel den Arbeitsspeicher verschlingt, da er für das Zwischenspeichern von Festplatten zur Verfügung steht. Sie können nichts dagegen tun, wenn Sie nicht Lust haben, einen benutzerdefinierten Kernel zu kompilieren. Profi-Tipp: Nicht.
Der Arbeitsspeicher ist wirklich vorhanden und kann von den Prozessen nach Belieben genutzt werden. Das ist es, was mit der -/+ buffers/cache:
Reihe in gemeint ist free -m
. Sie befinden sich jedoch in einem Virtualisierungscontainer ohne Hyper-Visor, der die Dinge etwas unruhig macht. Sie können zu diesem Zeitpunkt einfach keine bytegenaue Bestandsaufnahme Ihres Speichers durchführen. Sie sehen jedoch kein schrecklich ungewöhnliches Verhalten.
Bleib ruhig und mach weiter. Besorgen Sie sich auch einen physischen Server (es sei denn, Sie möchten Speicherstatistiken, die so aussehen, als wäre Kreskin Ihr SysAdmin).