Gerade auf einem Server, der vielleicht viele Tage, Monate oder gar Jahre ohne Neustart laufen muss, muss man hin und wieder den Speicher (RAM, Puffer und SWAP) leeren – und ja, ich kenne Server, die laufen schon mehrere Jahre ohne Neustart (keine Windows-Server 😂).
Dies funktioniert sehr einfach und schnell mit folgenden Befehlen als root auf dem Terminal:
Inhaltsverzeichnis
RAM-Speicher unter Linux leeren
sync; echo 1 > /proc/sys/vm/drop_caches
Nur das Dateisystem und die Inodes im RAM löschen
sync; echo 2 > /proc/sys/vm/drop_caches
Reinen Speicher im RAM freigeben
sync; echo 3 > /proc/sys/vm/drop_caches
SWAP unter Linux leeren
swapoff -a
swapon -a
Ist es ratsam, einzugreifen?
Grundsätzlich – nein! Der Linux-Kernel ist darauf getrimmt, den Speicher optimal zu nutzen. Aber gerade ein Server, der lange Zeit läuft – irgendwann wird der Speicher voll. Nehmen wir einen Webserver – Sie optimieren den Speicher genau dann, wenn viele Besucher auf der Webseite sind. Dann wird alles, was eigentlich aus dem schnellen Speicher geladen wird, von der langsameren Festplatte / SSD geladen.
Dies bedeutet, leeren Sie den Speicher dann, wenn auch niemand oder gerade nur wenige auf dem Server sind.
Den Speicher automatisch leeren
Zum automatischen leeren des Speichers nutzen Sie am einfachsten Cron – etwa täglich um Mitternacht:
0 0 * * * sync; echo 1 > /proc/sys/vm/drop_caches
0 0 * * * sync; echo 2 > /proc/sys/vm/drop_caches
0 0 * * * sync; echo 3 > /proc/sys/vm/drop_caches
0 0 * * * swapoff -a && sudo swapon -a
Noch keine Reaktion