Zugeben – ich habe den Einzeiler kopiert. Ich habe aber keine Ahnung mehr, von welcher Seite. Wenn man danach googelt findet mat jede Menge Treffer – ich bitte um Nachsicht.
Über Tage/Wochen/Monate oder gar Jahre kann es passieren, dass Linux-Server ihren eigenen RAM vollaufen lassen. Grundsätzlich erstmal überhaupt kein Problem, denn wenn er neuen RAM braucht, macht er sich ungenutzten frei. Braucht er nichts, macht er nichts frei. Nicht weiter schlimm, es sei denn ihr setzt (wie ich) Monitoringsysteme ein, die unter Anderem den RAM überwachen. Entweder setzt man die Grenze unheimlich hoch, so dass der Sinn dieses Systems nicht mehr gegeben ist, oder aber man überwacht den RAM bei solchen Systemen gar nicht, ober aber man nimmt den Alarm zur Kenntnis und macht dann den RAM frei – so dass man trotzdem mitbekommt, in welchen Abständen das Ganze passiert. Wer das Ding mehrfach täglich ausführen muss, sollte mal über mehr RAM nachdenken 😉
Viel Gerede, hier ist es jetzt:
free && sync && echo 3 > /proc/sys/vm/drop_caches && free
Was passiert bei dem Befehl? Gar nicht so schwer.
Free gibt einfach nur den derzeit genutzten Speicher aus.
Sync schreibt gecachte Daten auf die Festplatte.
echo 3 > – Rest steht oben – schreibt die Zahl 3 in die Datei /proc/sys/vm/drop_caches was zur Folge hat, dass Pagecache, Dentries und Inodes freigegeben werden.
That’s it – kann nach Gebrauch z.B. folgende Ausgabe erzeugen:
total used free shared buffers cached
Mem: 32892292 12874360 20017932 680700 451252 11294256
-/+ buffers/cache: 1128852 31763440
Swap: 16760828 0 16760828
total used free shared buffers cached
Mem: 32892292 1312276 31580016 680700 1688 725904
-/+ buffers/cache: 584684 32307608
Swap: 16760828 0 16760828
Zu Anfang 12 GB RAM genutzt, danach noch 1.3 GB. Passt 🙂