Der Server hat ca. 24GB Speicher. Beim Ausführen free -g
stelle ich fest, dass der Speicher aufgebraucht ist
total used free shared buffers cached
Mem: 23 23 0 0 0 18
-/+ buffers/cache: 4 19
Swap: 56 2 53
top
Dann habe ich ein bisschen recherchiert, was den ganzen Speicher bis dahin verbraucht hat M
. Aber es scheint, dass in der Spalte noch ziemlich viel Speicher frei ist %MEM
.
Was kann ich tun, um Speicher freizugeben? Dies ist ein Server für Berechnungen, daher ist es besser, den Computer nicht neu zu starten.
Antwort1
Sie interpretieren die Ausgabe von falsch free
. Was Sie gepostet haben, zeigt, dass Sie 19 GB RAM frei haben. Die 23 GB, die Sie sehen, werden vom System als Cache verwendet, sind aber immer noch für Anwendungen verfügbar. Das ist auch der Grund, warum top
der Speicher als frei angezeigt wird.
SehenLinuxatemyram.comfür eine ausführlichere Erklärung
Antwort2
Weitere Informationen finden Sie unterdiese Fragezur Ermittlung des genauen freien Speichers.
Standardmäßig ist dielinuxhat einsehr effizientSpeicherverwaltungsprozess, der den gesamten zwischengespeicherten Speicher auf dem Computer, auf dem er ausgeführt wird, freigeben sollte.
Wenn es jedoch darum geht,Cachespeicher,linuxkann zuweilen entscheiden, dass dieCachespeicherwird verwendet und benötigt, was zu Speicherproblemen führen und letztendlich den freien Speicher aufbrauchen kann. Um dem entgegenzuwirken, können Sie erzwingenlinuxum den gesamten zwischengespeicherten Speicher freizugeben.
Um sofort Speicher freizugeben, können Sie einfach Folgendes tun:
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
BEARBEITET: Sie können diesen Befehl auch als Cronjob ausführen.
Als@mjturnerEs wird jedoch darauf hingewiesen, dass dies nicht unbedingt empfohlen wird, da es zu Leistungsengpässen führen kann.