Frage Bedeutung der Puffer / Cache-Zeile in der Ausgabe von free


Warum zeigt mein Server an?

            total      used      free   shared buffers    cached
    Mem: 12286456  11715372    571084        0   81912   6545228
-/+ buffers/cache:  5088232   7198224
   Swap: 24571408     54528  24516880

Ich habe keine Idee, den Speicher in Linux zu berechnen. Ich denke, es heißt, dass 5088232 verwendet wird, wo 7198224 frei ist, was bedeutet, dass es tatsächlich 5 GB RAM verbraucht?


150
2017-11-17 10:37


Ursprung


serverfault.com/questions/23433/ ... - Kyle Brandt♦
linuxatemyram.com - Sasha


Antworten:


Bedeutung der Werte

Die erste Zeile bedeutet:

  • total: Ihr gesamter (physischer) Arbeitsspeicher (mit Ausnahme eines kleinen Stücks, das der Kernel beim Start permanent für sich reserviert); deshalb zeigt es ca. 11.7 GiB, und nicht 12 GiB, die Sie wahrscheinlich haben.
  • used: Speicher, der vom Betriebssystem verwendet wird.
  • free: Speicher wird nicht verwendet.

total = used + free

  • shared / buffers / cached: Zeigt die Speichernutzung für bestimmte Zwecke an, diese Werte sind im Wert für enthalten used.

Die zweite Zeile gibt die ersten Linienwerte an. Es gibt den ursprünglichen Wert für used  Minus- die Summe buffers+cached und der ursprüngliche Wert für free  Plus die Summe buffers+cacheddeshalb sein Titel. Diese neuen Werte sind oft aussagekräftiger als die der ersten Zeile.

Die letzte Zeile (Swap:) gibt Informationen über die Verwendung von Auslagerungsspeicher (d. h. Speicherinhalt, der vorübergehend auf Platte verschoben wurde).

Hintergrund

Um zu verstehen, was die Zahlen bedeuten, benötigen Sie ein wenig Hintergrundwissen über das Virtual Memory (VM) Subsystem in Linux. Nur eine kurze Version: Linux (wie die meisten modernen OS) wird immer versuchen, freien RAM für Caching-Sachen zu verwenden, also Mem: free wird fast immer sehr niedrig sein. Daher die Linie -/+ buffers/cache: wird angezeigt, weil es anzeigt, wie viel Speicher frei ist, wenn Caches ignoriert werden; Caches werden automatisch freigegeben, wenn der Speicher knapp wird, also spielen sie keine Rolle.

Ein Linux-System ist wirklich wenig Speicher, wenn die free Wert in -/+ buffers/cache: Linie wird niedrig.

Für weitere Einzelheiten über die Bedeutung der Zahlen siehe z.B. die Fragen:

Änderungen in den Programmen 3.3.10

Beachten Sie, dass die Ausgabe von free wurde in procps 3.3.10 geändert (veröffentlicht im Jahr 2014). Die angegebenen Spalten sind jetzt "total", "gebraucht", "frei", "geteilt", "Buff / Cache", "verfügbar", und die Bedeutungen einiger der Werte wurden geändert, hauptsächlich um den Slab-Cache des Linux-Kernels besser zu berücksichtigen.

Sehen Debian Fehlerbericht # 565518 für die Motivation und Was machen die Änderungen in? free Ausgabe von 14,04 bis 16.04 bedeuten? für weitere Informationen.


215
2017-11-17 11:42



Könnten Sie näher erläutern, welche Arten von Dingen Linux möglicherweise im Cache speichert? Wäre es Dateien, auf die zugegriffen wurde, oder Netzwerkkram? - CMCDragonkai
@ CMCDragonkai: Die Antwort auf serverfault.com/questions/23433/ ... Adressen im Detail, was "Cache" und "Puffer" ausmacht. - sleske
Ich glaube nicht, dass die Aussage "total = used + free" korrekt ist, siehe folgende Ausgabe auf meiner Maschine: $ free -h  total used free shared buff/cache available  Mem: 3.4G 585M 152M 11M 2.6G 2.5G  Swap: 4.0G 84M 3.9G - Sebastian
@Sebastian: Ah, interessant. Es scheint, dass der Output von Free geändert wurde (in 3.3.10). Ich habe meine Antwort bearbeitet, um dies zu erwähnen. Wenn Sie an dieser Änderung interessiert sind, sollten Sie eine neue Frage stellen :-). - sleske
total = used + free + buff/cache - danger89


Für alle, die eine noch einfachere Schritt-für-Schritt-Erklärung benötigen, überprüfen Sie http://thoughtsbyclayg.blogspot.com/2008/09/display-free-memory-on-linux-ubuntu.html, seine Erklärung hat mir sehr geholfen.


7
2018-02-13 22:06



meta.stackexchange.com/q/8231/133242 - Matt Ball


Die Puffer / Cache-Zeile zeigt Ihnen, wie viel Speicher von Programmen verwendet wird (die erste dieser Spalten), und ist für Programme frei (zweite Spalte). Es ist eine ziemlich esoterische Zahl und nicht etwas, was man in der Praxis wirklich anschaut.


2
2017-11-17 11:03



Und was bedeutet die erste Zeile (Mem-Zeile) - Muahmmad Zeeshan
Dass Sie 12 GB RAM in das System installiert haben, von denen 11,5 GB verwendet werden und 0,5 GB oder so ist derzeit nicht verwendet. Ungefähr 82 MB des verwendeten Speichers werden für Puffer (Netzwerkverbindungen usw.) verwendet, während etwa 6,5 ​​GB zum Speichern von Kopien von Daten auf der Platte verwendet werden, so dass Daten nicht erneut gelesen werden müssen, wenn sie erneut benötigt werden. - womble♦
@Muhammad: "82MB ist kostenlos." - Nein, 57MiB ist kostenlos (aber das ist nicht wirklich wichtig, siehe meine Antwort). "Jetzt bedeutet alles, dass das System seine Grenzen erreicht hat" - Nein, überhaupt nicht. Das System verwendet 6.9GiB für das Caching, das es für Anwendungen bereithält, so dass es viel Platz gibt. Außerdem ist die Verwendung von Swap sehr gering (nur ca. 50MiB). Wenn der Speicher knapp wird, steigt die Nutzung von Swap. Zurzeit verwenden Sie kaum die Hälfte Ihres Arbeitsspeichers. - sleske
Haben Sie darüber nachgedacht, irgendwann eine neue Frage zu stellen? - womble♦
Ich stimme nicht zu, die Puffer / Cache-Zeile ist der tatsächliche freie Speicher des Systems und daher am wichtigsten, wenn Sie wissen wollen, ob das System Platz für Programme hat. - eckes