GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Bedeutung der Buffer/Cache-Zeile in der Ausgabe von free

Lösung 1:

Bedeutung der Werte

Die erste Zeile bedeutet:

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

total =used + free

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

Die zweite Zeile gibt die angepassten Werte der ersten Zeile 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+cached , daher der Titel. Diese neuen Werte sind oft aussagekräftiger als die der ersten Zeile.

Die letzte Zeile (Swap: ) gibt Auskunft über die Nutzung des Swap Space (d. h. Speicherinhalte, die vorübergehend auf die Festplatte verschoben wurden).

Hintergrund

Um wirklich zu verstehen, was die Zahlen bedeuten, benötigen Sie ein wenig Hintergrundwissen über das Subsystem des virtuellen Speichers (VM) in Linux. Nur eine kurze Version:Linux (wie die meisten modernen Betriebssysteme) wird immer versuchen, freien RAM zum Zwischenspeichern zu verwenden, also Mem: free wird fast immer sehr niedrig sein. Daher die Zeile -/+ buffers/cache: wird angezeigt, weil es zeigt, 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 hat wirklich wenig Arbeitsspeicher, wenn free Wert in -/+ buffers/cache: Leitung wird niedrig.

Näheres zur Bedeutung der Zahlen siehe z.B. die Fragen:

  • Was ist unter Linux der Unterschied zwischen "buffers" und "cache", die vom free-Befehl gemeldet werden?
  • Warum meldet Red Hat Linux weniger freien Speicher auf dem System als tatsächlich verfügbar ist?

Änderungen in Props 3.3.10

Beachten Sie, dass die Ausgabe von free wurde in procps 3.3.10 (veröffentlicht 2014) geändert. Die gemeldeten Spalten sind jetzt "Gesamt", "Verwendet", "Kostenlos", "Geteilt", "Buff/Cache", "Verfügbar" , und die Bedeutung einiger Werte hat sich geändert, hauptsächlich um den Slab-Cache des Linux-Kernels besser zu berücksichtigen.

Siehe Debian-Fehlerbericht Nr. 565518 für die Motivation und Was bedeuten die Änderungen in free Ausgabe vom 14.04 bis 16.04 bedeuten? für weitere Informationen.

Lösung 2:

Die derzeit akzeptierte Antwort von 2009 ist veraltet. Es ist wichtig sicherzustellen, dass die Informationen, die Sie erhalten, korrekt sind und mit der Version von free übereinstimmen (verteilt im Debian-Paket procps oder gleichwertig in Ihrer Distribution). Es ist auch hilfreich, sich die Ausgabe von man free anzusehen , und auch man 5 proc , die Informationen über /proc/meminfo enthält , die Datei, in der free erhält seine Daten von Linux.

Standardmäßig free Die Ausgabe von ist in Kibibyte (1 Kibibyte =1024 Bytes), wie Sie in der Handbuchseite sehen können. Ich bevorzuge den -h Argument, das Suffixe anzeigt, etwa so:

$ free -h
              total        used        free      shared  buff/cache   available
Mem:           15Gi       6.1Gi       1.9Gi       301Mi       7.5Gi       8.8Gi
Swap:         979Mi          0B       979Mi

Die erste Zeile Mem bedeutet:

  • total (Mem):Gesamter installierter Speicher (d. h. MemTotal ab /proc/meminfo ), das ist der ganze Speicher im RAM
  • used (Mem):verwendeter Speicher, gleich total - free - buffers - cache
  • free (Mem):ungenutzter Speicher (das ist MemFree ), das ist der gesamte Speicher, der für irgendetwas (sogar Caches) im RAM ungenutzt ist
  • shared (Mem):Dies ist die Menge an Speicher, die hauptsächlich für tmpfs verwendet wird (Shmem )
  • buff/cache (Mem), Summe von buffers und cache :
    • buffers :Speicher, der von Kernelpuffern verwendet wird (Buffers ), das ist Speicher, den der Kernel nutzen kann
    • cache :Speicher, der vom Seitencache und Slabs verwendet wird (Cached und SReclaimable ). Der Seiten-Cache enthält den Inhalt von Dateien im Dateisystem, die im RAM zwischengespeichert sind, und es ist im Allgemeinen gut, wenn dies eine hohe Zahl ist. Ich nehme an, "Slabs" sind eine ähnliche Caching-Funktion.
  • available (Mem):Dies ist eine Schätzung, wie viel Speicher zum Starten neuer Anwendungen ohne Austausch verfügbar ist. Es enthält den größten Teil des Speichers, der in cache gezählt wird (da der Seiten-Cache gelöscht werden kann, um neue Anwendungen zu starten), aber Swap wird nicht gezählt (da es im Allgemeinen vorzuziehen ist, keinen langsamen Swap-Speicher zu verwenden).

Die zweite Zeile ist Swap . Dies ist meine Erklärung:

  • total (Swap):Dies ist die Gesamtmenge an Speicherplatz, die für den Austausch reserviert ist (SwapTotal in proc/meminfo ). Sie können überprüfen, ob dies mit der Ausgabe von swapon -s übereinstimmt .
  • used (Swap):Die Menge an Swap-Speicherplatz, die derzeit verwendet wird. Auch dies können Sie überprüfen, indem Sie es mit der Ausgabe von swapon -s vergleichen
  • free (Swap):die Menge an Swap-Speicherplatz, die derzeit nicht verwendet wird (SwapFree in /proc/meminfo ). Es ist gleich total (Swap) - used (Swap)

Linux
  1. Linux – Wie leert man die Puffer und den Cache auf einem Linux-System?

  2. Wie kann man 90 % des freien Speichers füllen?

  3. Welche Bedeutung haben die einzelnen Zeilen der Assembly-Ausgabe eines C hello world?

  4. Was ist der Unterschied zwischen Puffer- und Cache-Speicher in Linux?

  5. Linux free zeigt eine hohe Speicherauslastung, top jedoch nicht

Verwenden des kostenlosen Linux-Befehls

Wie protokolliere ich den Speicherverbrauch unter Linux?

Auslassen der ersten Zeile in jeder Linux-Befehlsausgabe

Ausrichtung auf die Cache-Zeile und Kenntnis der Cache-Zeilengröße

Wie kann ich die aktuelle Größe des ARC in ZFS ermitteln und in welcher Beziehung steht der ARC zu freiem oder Cache-Speicher?

Was ist die Pufferspalte in der Ausgabe von free?