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. 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. 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.
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) 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:
|
<<: So legen Sie die UTF-8-Kodierung in einer MySQL-Datenbank fest
>>: JavaScript CSS3 zur Implementierung einer einfachen Video-Sperrfunktion
Die virtuelle Maschine, die ich von einer bestimm...
Inhaltsverzeichnis 1. Einleitung 2. Zusammensetzu...
Inhaltsverzeichnis 1. Kurze Einführung 2. Interva...
In diesem Artikel wird der spezifische JavaScript...
Die folgenden Installationen verwenden alle das V...
html <div Klasse="nach oben" v-show=...
1. Einleitung Der Unterschied zwischen Zeilensper...
Inhaltsverzeichnis 0. Hintergrund 1. Installation...
CSS: Code kopieren Der Code lautet wie folgt: *{Ra...
In diesem Artikel wird beschrieben, wie Sie die m...
Die Standardanordnung von Text in HTML ist horizo...
Derzeit nutzen die meisten Linux-Benutzer entwede...
(?i) bedeutet, dass die Groß-/Kleinschreibung nich...
Ich habe gestern gerade etwas HTML gelernt und kon...
Die Ersetzungsanweisung ähnelt im Allgemeinen der...