Manchmal geht dem System der Arbeitsspeicher aus, weil ein riesiger Arbeitsspeicher von zwischengespeicherten Objekten verwendet wird. In diesem Fall müssen Sie entweder den physischen Speicher im System vergrößern oder mehr Auslagerungsspeicher hinzufügen. Sie können den Kernel auch anweisen, den RAM-Speichercache auf dem System zu löschen, indem Sie eine Zahl in /proc/sys/vm/drop_caches
hinzufügen Datei.
Es ist sicher, aber nicht empfehlenswert, den Speichercache auf einem Linux-System zu löschen. Das Löschen des Arbeitsspeicher-Cache in Linux-Systemen verlangsamt die Systemleistung, da das Lesen von Dateien aus dem Arbeitsspeicher viel schneller ist als von der persistenten Festplatte. Da es zwischengespeicherte Objekte aus dem Speicher verwirft, kann es eine erhebliche Menge an E/A und CPU kosten, um die gelöschten Objekte neu zu erstellen. Dieses Tutorial hilft Ihnen, den Speichercache auf Linux/Unix-Systemen über die Befehlszeile zu löschen.
So löschen Sie den Speichercache unter Linux
Es gibt drei Optionen, um den Speichercache in Linux zu leeren. Wählen Sie eine der folgenden Optionen, um den Cache-Speicher des Linux-Systems gemäß Ihren Anforderungen zu leeren.
- Lösche PageCache, Dentries und Inodes im Cache-Speicher. Kurz gesagt, es wird den gesamten Speichercache löschen:
sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
- Dentrys und Inodes nur im Cache-Speicher löschen
sync; echo 2 | sudo tee /proc/sys/vm/drop_caches
- Seiten-Cache nur im Cache-Speicher löschen
sync; echo 1 | sudo tee /proc/sys/vm/drop_caches
Hier der erste Befehl sync
wird verwendet, um alle In-Memory-Cache-Dateien mit dem persistenten Speicher zu synchronisieren. Der nächste Befehl wird mit einem „;“ getrennt. Sobald der erste Befehl abgeschlossen ist, wird der nächste Befehl ausgelöst, um den Cache-Speicher zu löschen.
Planen Sie das Löschen des Speicher-Cache mit Crontab
Sie können auch einen Corn-Job planen, um den Cache regelmäßig zu leeren. Planen Sie Folgendes in der System-Crontab, um den Cache-Speicher in regelmäßigen Abständen automatisch zu leeren.
Öffnen Sie ein Terminal und führen Sie den Befehl „crontab -e“ aus, um crontab zu bearbeiten:
crontab -e
Fügen Sie den folgenden Eintrag an die Datei an:
0 10 * * * sync; echo 3 | sudo tee /proc/sys/vm/drop_caches
Der obige Cron wird stündlich ausgeführt und leert den Speicher-Cache auf Ihrem System.
Auf den Produktionsservern wird nicht empfohlen, einen Befehl zum Löschen des Caches zu planen. Dies kann zu Datenbeschädigung oder Datenverlust führen. Passen Sie also auf, bevor Sie den obigen Befehl in einer Produktionsumgebung ausführen.
So finden Sie Cache-Speicher in Linux
Verwenden Sie kostenlos Befehl, um die Verwendung des Cache-Speichers durch das Linux-System herauszufinden. Die Ausgabe des freien Befehls sieht wie folgt aus
free -m
Output total used free shared buffers cached Mem: 16050 15908 142 0 12012953 -/+ buffers/cache: 834 15216 Swap: 0 0 0
Hier zeigt die letzte Spalte den zwischengespeicherten Speicher (12953 MB) auf einem Linux-System. Das -m Option wird verwendet, um Ausgabe-MBs anzuzeigen.