reale Speichernutzung

15

Wenn ich richtig verstehe, ist in der folgenden Ausgabe von free, 3535m, der tatsächliche freie Speicher für Anwendungen verfügbar, nur 413m werden verwendet. Ist das richtig? Ich möchte den Unterschied zwischen Mem- und - / + -Puffern / Cache-Zeilen etwas erläutern.

frei -m
             Insgesamt verwendete freie gemeinsam genutzte Puffer zwischengespeichert
Mem: 3949 3854 95 0 9 3431
- / + Puffer / Cache: 413 3535
Swap: 2047 1322 725

quelle

Antworten:

16

Die Mem: totalZahl gibt die Gesamtgröße des Arbeitsspeichers an, die von Anwendungen verwendet werden kann. Dies ist der gesamte auf dem System installierte Arbeitsspeicher abzüglich:

  • von Hardwaregeräten reservierter Speicher (häufig Videospeicher, wenn die Grafikkarte keinen eigenen RAM hat);
  • Speicher, der vom Kernel selbst verwendet wird.

Diese Summe beinhaltet:

  • free: Speicher, der derzeit für einen beliebigen Zweck verwendet wird;
  • shared: ein Konzept, das es nicht mehr gibt. Es wird aus Gründen der Abwärtskompatibilität in der Ausgabe belassen (es gibt Skripte, von denen die Ausgabe analysiert wird free). (Auf aktuellen Systemen werden in der Regel Werte ungleich Null sharedangezeigt , da der Speicher neu verwendet wurde, um explizit über einen Mechanismus für gemeinsam genutzten Speicher freigegebenen Speicher anzuzeigen . Auf älteren Systemen enthielt er Dateien, die von mehr als einem Prozess zugeordnet wurden, und gemeinsam nutzbaren Speicher, der nach dem Freigeben freigegeben wurde fork().)
  • buffers: Von Dateien gesicherter Speicher, der bei Bedarf auf die Festplatte geschrieben werden kann.
  • cache: Von Dateien gesicherter Speicher, der jederzeit wiederhergestellt werden kann (der Unterschied buffersbesteht darin, dass die Puffer vor der Wiederverwendung auf der Festplatte gespeichert werden müssen, während der Cache aus Dingen besteht, die von der Festplatte neu geladen werden können).
  • used -buffers/cache: Speicher, der von Anwendungen verwendet wird (und nicht zum Auslagern ausgelagert wird).

Zur Not könnte das System ohne Puffer und Cache laufen, RAM für Anwendungen reservieren und systematisch Festplattenlese- und -schreibvorgänge durchführen, ohne dass ein Caching erforderlich ist. Die -/+ buffers/cacheZahlen geben die RAM-Größe an, die direkt von Anwendungen verwendet wird ( usedSpalte), und die RAM-Größe, die von Anwendungen nicht verwendet wird ( freeSpalte).

Obwohl dies sehr unterschiedlich sein kann, hat ein funktionsfähiges System in der Regel etwa die Hälfte seines Arbeitsspeichers für Anwendungen und die Hälfte für Puffer und Cache. Sofern Sie keinen dedizierten Dateiserver verwenden, verfügt Ihr System über mehr RAM, als für die aktuellen Aufgaben erforderlich ist. Wenn die free - buffers/cacheZahl niedrig wäre, würde dies auf ein System hinweisen, das nicht über genügend RAM verfügt (entgegen einer weit verbreiteten Meinung ist es für die Systemleistung wichtig, über viel Speicher für Puffer und Cache zu verfügen, und zu versuchen, mehr Speicher für Anwendungen zu reservieren) 99,99% der Systeme verlangsamen).

Die swapZeile ist unkompliziert. Sie zeigt die Menge an Swap, die verwendet wird (entweder von Anwendungen oder für die tmpfsSpeicherung), und die Menge, die nicht verwendet wird.

Gilles 'SO - hör auf böse zu sein'
quelle
1
"geteilt: ein Konzept, das es nicht mehr gibt." - Es sieht so aus, als ob es irgendwann zwischen 2011 und 2016 wieder eingeführt wurde: unix.stackexchange.com/questions/307015/…
Marisha
3

Ja, du hast Recht. Puffer und Cache werden vom Betriebssystem verwendet, stehen Anwendungen jedoch sofort zur Verfügung. Das Betriebssystem ist bereit, einen Teil des Cache für ungültig zu erklären und wegzuwerfen, um die nächste Speicheranforderung zu erfüllen.

n 'Pronomen' m.
quelle