Was ist im obersten Befehl „zwischengespeichert“?


46

Beim Laufen topbekomme ich:

top - 09:10:52 up 18:37,  1 user,  load average: 1.56, 1.33, 1.15
Tasks:  39 total,   1 running,  38 sleeping,   0 stopped,   0 zombie
Cpu(s):  0.1%us,  0.6%sy,  1.0%ni, 92.5%id,  5.8%wa,  0.0%hi,  0.0%si,  0.0%st
Mem:   4194304k total,  3045460k used,  1148844k free,        0k buffers
Swap:        0k total,        0k used,        0k free,  2256128k cached

Sehen Sie das Teil: 2256128k zwischengespeichert? Was genau bedeutet das

Ich vergleiche zwei VPS von zwei Anbietern, dieser hat immer eine große Menge (70% des verwendeten Speichers) und der andere VPS-Anbieter zeigt immer 0 an.

Antworten:


15

Diese Zahl vor dem Zwischenspeichern gibt die Größe des physischen Speichers an, der von den Cache-Puffern für Ihre Dateisysteme verwendet wird.

Es hat eigentlich nichts mit SWAP zu tun, obwohl es sich in der "Swap:" - Zeile befindet.

Um meine Antwort mit einem kleinen Experiment zu überprüfen, versuchen Sie Folgendes:

Führen Sie top aus und notieren Sie den Wert von 'cached'. Jetzt lauf

dd if=/dev/zero of=~/trick bs=1M count=128

Wenn Sie wieder an die Spitze kommen, werden Sie feststellen, dass der Cache um 128 Millionen angewachsen ist

Entfernen Sie nun die Datei

rm ~/trick

Laufen Sie wieder nach oben und Sie werden sehen, dass "zwischengespeichert" um 128 Millionen gesunken ist

Also für Mem:

total = used + free und

used = <all apps> + buffers + cached

(wobei Puffer im Grunde Metadaten für den zwischengespeicherten sind). Ein bisschen verwirrend von einer Benutzeroberfläche.


und kann ich das irgendwie beeinflussen, zB einschränken oder ganz deaktivieren?
KKK

2
Warum willst du das machen?! was sollst du damit machen ?! Es geht darum, wie Dateisystem-Cache im physischen Speicher.

Da der größte Teil des Dateisystems eine DB ist, hat die DB einen eigenen Cache, daher nehme ich an, dass es gut wäre, diesen Teil irgendwie einzuschränken.
KKK

Sie können es mit etwas Suche tun, aber ich rate Ihnen nicht. Dies wird die Leistung des FS

117

Der Linux-Kernel verwendet den verfügbaren Speicher für das Zwischenspeichern von Festplatten, es sei denn, dies wird von einem laufenden Programm benötigt.

Dies gilt als gut; Angenommen, Sie haben 4 GB RAM und Ihre Programme verwenden nur 1 GB. Die anderen 3 GB werden verschwendet. Trotz des "Wohlfühl" -Eindrucks, wenn Sie wissen, dass Sie nur 25% Ihres Gedächtnisses verwenden, bleiben die anderen 75% ungenutzt. Der Kernel verwendet dies also zum Zwischenspeichern von Dateien, was die Leistung erheblich verbessert. Es ist automatisch; Im Gegensatz zu älteren Betriebssystemen müssen Sie nicht entscheiden, wie viel für den Festplatten-Cache verwendet werden soll, oder ihn manuell konfigurieren.

"Der Linux-Festplatten-Cache ist sehr unauffällig. Er verwendet freien Speicher, um die Datenzugriffsgeschwindigkeit erheblich zu erhöhen, ohne dass Anwendungen Speicherplatz verlieren. Ein voll ausgelasteter RAM-Speicher unter Linux ist eine effiziente Nutzung der Hardware, kein Warnsignal."

Dies ist eine so häufige Frage, dass es eine ganze Website gibt, die sich dieser Frage widmet:

http://www.linuxatemyram.com

Die Website hat sogar die Möglichkeit, den Festplatten-Cache zu leeren, sodass Sie einige Anwendungen ausführen und sehen können, wie viel schneller sie sind, wenn der Cache aktiviert ist :)


4
Ich liebe die Antwort, kann sie aber (noch) nicht upgraden, da mir der Ruf fehlt. Es tut uns leid.
KKK

4
Keine Sorge, ich bin nur froh, Ihnen helfen zu können. Hoffe, die Informationen sind nützlich!
Roadmr

Dies sollte die akzeptierte Antwort sein. Naja . . . :(
Ankush981

sollte definitiv die akzeptierte Antwort sein. linuxatemyram ist super info!
Rafaelbattesti
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.