GNU/Linux >> LINUX-Kenntnisse >  >> Cent OS

So löschen Sie den Buffer/Pagecache (Festplatten-Cache) unter Linux

Stehen Sie vor einem Leistungsproblem und vermuten, dass es mit der Cache-Nutzung zusammenhängt? Eine hohe Cache-Nutzung sollte normalerweise keine Leistungsprobleme verursachen, kann aber in einigen seltenen Fällen die Hauptursache sein.

Was ist Memory Cache

Um Vorgänge zu beschleunigen und Festplatten-E/A zu reduzieren, führt der Kernel normalerweise so viel Caching durch, wie er Speicher hat. Seiten, die zwischengespeicherte Daten enthalten, können nach Bedarf für andere Zwecke (z. B. Apps) wiederverwendet werden Der Weg ist nicht langsamer, als unberührte Seiten zu beanspruchen.

Was ist der Zweck von /proc/sys/vm/drop_caches

Durch das Schreiben in /proc/sys/vm/drop_caches kann man den Kernel auffordern, so viele saubere zwischengespeicherte Daten wie möglich sofort zu löschen. Dies führt normalerweise dazu, dass etwas Speicher offensichtlicher verfügbar wird; Unter normalen Umständen sollte dies jedoch nicht erforderlich sein.

So löschen Sie den Speichercache mit /proc/sys/vm/drop_caches

Schreiben Sie den entsprechenden Wert in die Datei /proc/sys/vm/drop_caches bewirkt, dass der Kernel saubere Caches, Dentries und Inodes aus dem Speicher löscht, wodurch dieser Speicher frei wird.

1. Führen Sie zum Löschen des PageCache nur Folgendes aus:

# sync; echo 1 > /proc/sys/vm/drop_caches

2. Um Dentries (auch als Verzeichnis-Cache bezeichnet) und Inodes zu löschen, führen Sie Folgendes aus:

# sync; echo 2 > /proc/sys/vm/drop_caches

3. Um den PageCache zu löschen, führen Dentries und Inodes aus:

# sync; echo 3 > /proc/sys/vm/drop_caches

Beim Ausführen von Sync werden Dirty Pages auf Festplatten geschrieben. Normalerweise sind schmutzige Seiten der verwendete Speicher, sodass sie nicht freigegeben werden können. Daher kann die Ausführung von Sync den nachfolgenden Löschvorgängen helfen, mehr Speicher freizugeben.

Seiten-Cache ist Speicher, der nach dem Lesen von Dateien gehalten wird. Der Linux-Kernel zieht es vor, ungenutzten Seiten-Cache zu behalten, in der Annahme, dass Dateien, die einmal gelesen wurden, höchstwahrscheinlich in naher Zukunft erneut gelesen werden, wodurch die Leistungseinbußen bei Festplatten-E/A vermieden werden.

dentry und inode_cache werden nach dem Lesen von Verzeichnis-/Dateiattributen wie open() und stat() gehalten. dentry ist in allen Dateisystemen gleich, aber inode_cache ist auf Dateisystembasis. Der Linux-Kernel zieht es vor, diese Informationen aufzubewahren, in der Annahme, dass sie in naher Zukunft wieder benötigt werden, und vermeidet so Festplatten-IO.

Hinweis :Das Starten mit dem Sync-Befehl, wie in den obigen 3 Befehlen gezeigt, ist optional. Der Sync-Befehl ermöglicht dem Kernel, so viele Dirty-Cache-Seiten wie möglich auf die Festplatte zu schreiben (um die Anzahl der Daten-Cache-Seiten zu maximieren, die gelöscht werden können).

So löschen Sie den Memory Cache mit sysctl

Sie können das Cache-Drop auch mit sysctl -w vm.drop_caches=[number] auslösen Befehl.

1. Verwenden Sie den folgenden Befehl, um Pagecache, Dentries und Inodes freizugeben.

sysctl -w vm.drop_caches=3

2. Verwenden Sie den folgenden Befehl, um nur Dentries und Inodes freizugeben.

sysctl -w vm.drop_caches=2 

3. Verwenden Sie den folgenden Befehl, um nur den Pagecache freizugeben.

sysctl -w vm.drop_caches=1
Hinweis :Die Verwendung von vm.drop_caches kann zu einem Deadlock führen, wenn das System unter hoher Speicher- und I/O-Last steht!!!

„Saubere“ zwischengespeicherte Daten können gelöscht werden. „Dirty“ zwischengespeicherte Daten müssen irgendwo geschrieben werden. Die Verwendung von vm.drop_caches wird den Kernel niemals dazu veranlassen, den schmutzigen Cache zu löschen.


Cent OS
  1. So löschen Sie den Webbrowser-Cache von der Befehlszeile in Linux

  2. So finden Sie unter Linux heraus, ob es sich bei der Festplatte um eine SSD oder HDD handelt

  3. So löschen Sie Speicherpuffer und Cache in Linux

  4. Was ist der Unterschied zwischen Puffer- und Cache-Speicher in Linux?

  5. So finden Sie die Socket-Puffergröße von Linux

So löschen oder leeren Sie den DNS-Cache in Linux

So verwalten Sie Datenträgervolumes in Linux

So löschen Sie RAM-Cache, Puffer und Auslagerungsspeicher auf einem Linux-System

So löschen Sie den Auslagerungsspeicher unter Linux

So installieren Sie KernelCare und löschen den Kernelcare-Cache unter Linux

So löschen Sie den RAM-Speicher-Cache, den Puffer und den Swap-Speicher unter Linux