Wie kann man vor dem Benchmarking den Arbeitsspeicher (RAM) freigeben, den der Linux-Kernel für Puffer und Cache verbraucht?
Beachten Sie, dass dies vor allem für das Benchmarking nützlich ist. Das Leeren der Puffer und des Cache verringert die Leistung! Wenn Sie hier sind, weil Sie dachten, dass das Freigeben von Puffern und Cache eine positive Sache ist, lesen Sie, wie Linux meinen Arbeitsspeicher aufgefressen hat! . Die Kurzgeschichte: Freier Speicher ist ungenutzter Speicher ist verschwendeter Speicher.
Antworten:
Puffer-Cache leeren
Wenn Sie es jemals leeren möchten, können Sie diese Befehlskette verwenden.
Sie können dem Linux-Kernel signalisieren, verschiedene Aspekte von zwischengespeicherten Elementen zu löschen, indem Sie das numerische Argument in den obigen Befehl ändern.
So geben Sie den Pagecache frei:
So befreien Sie Einträge und Inodes:
So geben Sie Pagecache, Einträge und Inodes frei:
Die oben genannten sollen als root ausgeführt werden. Wenn Sie versuchen, sie zu verwenden, müssen
sudo
Sie die Syntax leicht in etwas ändern:ANMERKUNG: Es gibt eine esoterischere Version des obigen Befehls, wenn Sie dies möchten:
Warum die Syntaxänderung? Das
/bin/echo
Programm wird aufgrund von als root ausgeführt,sudo
aber die Shell, die die Ausgabe von echo in die reine root-Datei umleitet, wird weiterhin als Sie ausgeführt. Ihre aktuelle Shell führt die Umleitung durch, bevor siesudo
gestartet wird.Anzeigen, was sich in den Puffern und im Cache befindet
Werfen Sie einen Blick darauf,
linux-ftools
ob Sie den Inhalt der Puffer und des Caches analysieren möchten. Insbesondere, wenn Sie sehen möchten, welche Dateien gerade zwischengespeichert werden.Fincore
Mit diesem Tool können Sie sehen, welche Dateien in einem give-Verzeichnis zwischengespeichert werden.
Zum Beispiel
/var/lib/mysql/blogindex
:Mit der obigen Ausgabe können Sie feststellen, dass mehrere * .MYD-, * .MYI- und * .frm-Dateien im Cache gespeichert sind.
Wechsel
Wenn Sie Ihren Swap löschen möchten, können Sie die folgenden Befehle verwenden.
Verwenden Sie dann diesen Befehl, um den Tausch zu deaktivieren:
Sie können bestätigen, dass es jetzt leer ist:
Und um es wieder zu aktivieren:
Und jetzt bestätigen Sie mit
free
:quelle
tee
, um als root zu schreiben:echo 3 | sudo tee /proc/sys/vm/drop-caches