Zusammenfassung der Methoden zum Löschen des Cache im Linux-System

Zusammenfassung der Methoden zum Löschen des Cache im Linux-System

1) Einführung in den Cache-Mechanismus

Um die Leistung des Dateisystems im Linux-System zu verbessern, verwendet der Kernel einen Teil des physischen Speichers, um einen Puffer für die Zwischenspeicherung von Systemvorgängen und Datendateien zuzuweisen. Wenn der Kernel eine Lese- oder Schreibanforderung empfängt, prüft er zunächst im Cache, ob die angeforderten Daten vorhanden sind. Wenn dies der Fall ist, kehrt er direkt zurück. Wenn nicht, bedient er die Festplatte direkt über den Treiber.
Vorteile des Cache-Mechanismus: Reduzierung der Anzahl der Systemaufrufe, Reduzierung des CPU-Kontextwechsels und der Häufigkeit des Festplattenzugriffs.

CPU-Kontextwechsel: Die CPU gibt jedem Prozess eine bestimmte Servicezeit. Wenn die Zeitscheibe aufgebraucht ist, fordert der Kernel den Prozessor vom laufenden Prozess zurück, speichert den aktuellen Ausführungszustand des Prozesses und lädt dann die nächste Aufgabe. Dieser Vorgang wird als Kontextwechsel bezeichnet. Im Wesentlichen handelt es sich dabei um den Prozesswechsel zwischen dem beendeten Prozess und dem auszuführenden Prozess.

2) Überprüfen Sie den Cache und die Speichernutzung

[root@localhost ~]# frei -m
       insgesamt genutzte freie gemeinsam genutzte Puffer im Cache
Mitglied: 7866 7725 141 19 74 6897
-/+ Puffer/Cache: 752 7113
Tausch: 16382 32 16350

Aus den obigen Befehlsergebnissen können wir ersehen, dass der Gesamtspeicher 8 GB beträgt, 7725 MB verwendet werden und 141 MB übrig bleiben. Viele Leute sehen das so.
Dies kann jedoch nicht als tatsächliche Auslastungsrate angesehen werden. Aufgrund des Cache-Mechanismus lautet der spezifische Algorithmus wie folgt:

Freier Speicher = frei (141) + Puffer (74) + zwischengespeichert (6897)

Verwendeter Speicher = gesamt (7866) - freier Speicher

Daraus können wir errechnen, dass der freie Speicher 7112 MB und der genutzte Speicher 754 MB beträgt. Dies ist die tatsächliche Nutzungsrate. Sie können auch die Informationen zu -/+ Puffern/Cachezeilen zu Rate ziehen, die ebenfalls die korrekte Speichernutzungsrate darstellen.

3) Cache-Unterscheidung zwischen Puffern und zwischengespeicherten

Der Kernel weist die Puffergröße zu und stellt gleichzeitig sicher, dass das System den physischen Speicher verwenden und Daten normal lesen und schreiben kann.

Puffer werden zum Zwischenspeichern von Metadaten und Seiten verwendet und können als Systemcache verstanden werden, z. B. wenn vi eine Datei öffnet.

cached wird zum Zwischenspeichern von Dateien verwendet und kann als Datenblock-Cache verstanden werden. Wenn beispielsweise der Test dd if=/dev/zero of=/tmp/test count=1 bs=1G eine Datei schreibt, wird sie im Puffer zwischengespeichert. Wenn dieser Testbefehl das nächste Mal ausgeführt wird, ist die Schreibgeschwindigkeit deutlich schneller.

4) Nutzung tauschen

Swap bedeutet Swap-Partition. Normalerweise ist der virtuelle Speicher, von dem wir sprechen, eine von der Festplatte abgetrennte Partition. Wenn der physische Speicher nicht ausreicht, gibt der Kernel einige Programme im Puffer (Cache) frei, die lange Zeit nicht verwendet wurden, und legt diese Programme dann vorübergehend in Swap ab. Das heißt, Swap wird nur verwendet, wenn der physische Speicher und der Cache-Speicher nicht ausreichen.

Swap-Bereinigung:

swapoff -a und swapon -a

Hinweis: Für diese Bereinigung gibt es eine Voraussetzung. Der freie Speicher muss größer sein als der bereits verwendete Swap-Speicher.

5) So geben Sie den Cache-Speicher frei

a) Seitencache leeren

# echo 1 > /proc/sys/vm/drop_caches oder # sysctl -w vm.drop_caches=1

b) Dentries (Verzeichnis-Cache) und Inodes bereinigen

# echo 2 > /proc/sys/vm/drop_caches oder # sysctl -w vm.drop_caches=2

c) Pagecache, Dentries und Inodes bereinigen

# echo 3 > /proc/sys/vm/drop_caches oder # sysctl -w vm.drop_caches=3

Die oben genannten drei Methoden sind alle temporäre Möglichkeiten, den Cache freizugeben. Um den Cache dauerhaft freizugeben, müssen Sie in der Datei /etc/sysctl.conf Folgendes konfigurieren: vm.drop_caches=1/2/3, und dann wird sysctl -p wirksam!

Darüber hinaus können Sie mit dem Befehl „Sync“ den Dateisystem-Cache bereinigen, wodurch auch Zombie-Objekte und der von ihnen belegte Speicher bereinigt werden.

# synchronisieren

Die oben genannten Vorgänge schaden dem System in den meisten Fällen nicht, sondern helfen lediglich, ungenutzten Speicher freizugeben.

Wenn jedoch während der Ausführung dieser Vorgänge Daten geschrieben werden, werden die Daten tatsächlich aus dem Dateicache gelöscht, bevor sie die Festplatte erreichen, was nachteilige Auswirkungen haben kann. Wie können wir also verhindern, dass dies passiert?

Daher müssen wir hier die Datei /proc/sys/vm/vfs_cache_pressure erwähnen, die dem Kernel mitteilt, welche Priorität beim Bereinigen des Inoe/Dentry-Cache verwendet werden soll.

vfs_cache_pressure=100 Dies ist der Standardwert. Der Kernel versucht, Dentries und Inodes neu zu deklarieren und ein „vernünftiges“ Verhältnis zum Seitencache und Swap-Cache einzunehmen.
Wenn Sie den Wert von vfs_cache_pressure verringern, neigt der Kernel dazu, Dentry- und Inode-Caches beizubehalten.
Wenn der Wert von vfs_cache_pressure erhöht wird (d. h. über 100), neigt der Kernel dazu, Dentries und Inodes neu zu deklarieren

Zusammengefasst ist der Wert von vfs_cache_pressure:
Werte unter 100 führen nicht zu einer nennenswerten Reduzierung des Caches, Werte über 100 teilen dem Kernel jedoch mit, dass der Cache mit hoher Priorität geleert werden soll.

Tatsächlich löscht der Kernel den Cache mit relativ niedriger Geschwindigkeit, unabhängig davon, welcher vfs_cache_pressure-Wert verwendet wird.
Wenn Sie diesen Wert auf 10000 setzen, reduziert das System den Cache auf ein sinnvolles Maß.

Verwenden Sie vor der Freigabe des Speichers den Befehl „Sync“, um die Integrität des Dateisystems sicherzustellen und alle nicht geschriebenen Systempuffer (einschließlich geänderter I-Nodes, verzögerter Block-E/A und Lese-/Schreib-Zuordnungsdateien) auf die Festplatte zu schreiben. Andernfalls können beim Cache-Freigabevorgang nicht gespeicherte Dateien verloren gehen.

/proc ist ein virtuelles Dateisystem, das als Kommunikationsmittel mit der Kernel-Entität durch Lese- und Schreibvorgänge verwendet werden kann. Mit anderen Worten: Das Verhalten des aktuellen Kernels kann durch Ändern der Dateien in /proc angepasst werden. Das heißt, wir können Speicher freigeben, indem wir /proc/sys/vm/drop_caches anpassen.

Der Wert von drop_caches kann eine Zahl zwischen 0 und 3 sein, die unterschiedliche Bedeutungen haben:

0: Nicht freigeben (Systemstandardwert)
1: Den Seitencache freigeben
2: Dentries und Inodes freigeben
3: Alle Caches freigeben

Das Obige ist alles Wissenswerte über das Leeren des Caches im Linux-System. Vielen Dank für Ihr Wissen und Ihre Unterstützung für 123WORDPRESS.COM.

Das könnte Sie auch interessieren:
  • PHP-Programmierer spielen Linux-Serie Nginx Anfängerhandbuch
  • Nasm implementiert den Bootcode zum Ausführen einer selbst erstellten Linux-Bootdiskette mit VMware
  • Analyse des Linux-Bootvorgangs
  • Linux Administratorhandbuch (5) - Booten und Herunterfahren
  • Hinweise zu Linux-Systembefehlen
  • Zusammenfassung der Befehle zur Benutzerverwaltung im Linux-System
  • Detaillierte Erklärung des sudo-Befehls im Linux-System
  • Linux-Systembefehl zum Löschen von Ordnern und Dateien
  • So verwenden Sie den Befehl dd unter Linux
  • Zusammenfassung von zehn Tipps zum sudo-Befehl im Linux-System
  • Analyse der Linux-Bootsystemmethoden

<<:  So legen Sie die UTF-8-Kodierung in einer MySQL-Datenbank fest

>>:  JavaScript CSS3 zur Implementierung einer einfachen Video-Sperrfunktion

Artikel empfehlen

Docker nginx implementiert einen Host zum Bereitstellen mehrerer Sites

Die virtuelle Maschine, die ich von einer bestimm...

Details zum JavaScript-Timer

Inhaltsverzeichnis 1. Kurze Einführung 2. Interva...

JavaScript zur Implementierung der mobilen Signaturfunktion

In diesem Artikel wird der spezifische JavaScript...

Beispiel für die Verwendung von Docker zum Erstellen eines ELK-Protokollsystems

Die folgenden Installationen verwenden alle das V...

Vue erzielt den Top-Effekt durch V-Show

html <div Klasse="nach oben" v-show=...

Verwenden Sie Iframe, um Wettereffekte auf Webseiten anzuzeigen

CSS: Code kopieren Der Code lautet wie folgt: *{Ra...

So reduzieren Sie die Bildgröße mithilfe des mehrstufigen Docker-Builds

In diesem Artikel wird beschrieben, wie Sie die m...

So implementieren Sie vertikale Textausrichtung mit CSS (Zusammenfassung)

Die Standardanordnung von Text in HTML ist horizo...

Installieren Sie ein CentOS-System basierend auf WindowsX Hyper-V

Derzeit nutzen die meisten Linux-Benutzer entwede...

So ersetzen Sie alle Tags im HTML-Text

(?i) bedeutet, dass die Groß-/Kleinschreibung nich...

Eine kleine Einführung in die Verwendung der Position in HTML

Ich habe gestern gerade etwas HTML gelernt und kon...

Detaillierte Beschreibung des MySQL-Ersetzens in der Verwendung

Die Ersetzungsanweisung ähnelt im Allgemeinen der...