Wie wird die Ausgabe des Befehls "free -m" interpretiert?

48

Die Ausgabe von free -mist:

                     total    used    free    shared  buffers  cached
Mem:                  595      482     112         0       63     324
-/+ buffers/cache:              93     501
swap:                   0        0       0

Welcher Wert des verwendeten Speichers ist korrekt, 482 oder 93?

amoooc
quelle

Antworten:

41

Sie haben 112 MB vollständig freien Speicher, ABER die 501 MB, die Sie sehen, sind ohne "zwischengespeicherten" Speicher. Dies bedeutet, dass das Betriebssystem einige Dinge in Ihren Speicher gestellt hat, um schneller zu sein. Es nennt dies "gebraucht" (daher ist Ihre "freie" Nummer nur 112), aber es ist tatsächlich für Sie verfügbar, wenn Sie es brauchen.

Das ist eine gute Sache, denn nicht genutzter Speicher ist nutzloser Speicher. Der zwischengespeicherte Speicher kann bei Bedarf gelöscht werden. Das alte Zeug "Ich muss den Speicher aufräumen", das die Leute für Windows 95 gemacht haben, wird hier nicht benötigt: Es ist alles in Ordnung und glücklich :)

Die Nummer, die Sie suchen, ist 501 frei (in Megabyte wegen -m).

siehe als Referenz diese Seiten:

http://www.linuxatemyram.com/
http://www.itworld.com/it-managementstrategy/280695/making-sense-memory-usage-linux

Nanne
quelle
Grundsätzlich: "Schauen Sie sich nur die zweite Zeile an, die mit den Puffern / Cache".
Nanne
25

Ausgabe interpretieren von free:
Die erste Zeile der freeAusgabelisten:

  • total Ihr gesamter physischer Speicher (keine Virtualisierung vorausgesetzt)
  • used Wie viel davon wird derzeit (von irgendetwas) verwendet?
  • free Wie viel davon ist völlig kostenlos (überhaupt nicht verwendet)
  • shared (nie etwas da, ignoriere diese Spalte)
  • buffers Von Kernel-Puffern verwendeter Speicher
  • cached Für den Cache verwendeter Speicher

Die letzten beiden Elemente, Cache und Puffer, sind Speicher, der nicht bestimmten Benutzerprozessen zugeordnet ist. Es ist vom Kernel reservierter Speicher, um die Leistung insgesamt zu verbessern, aber kein "Anwendungsspeicher". Diese Bereiche werden je nach Kernel-Richtlinien in Bezug auf Caching, Speicherdruck, E / A-Muster der Anwendung usw. größer oder kleiner.

Da es sich bei diesen beiden Spalten nicht um vom Benutzer zugewiesenen Speicher handelt und die Zonen bei Bedarf (praktisch auf Null) verkleinert werden können, sind sie gewissermaßen "frei" - dort befindet sich RAM, das vom Kernel freigegeben werden kann, wenn Ihre Apps verwendet werden brauche es aktiv.

Das sagt Ihnen die zweite Zeile. Es entfernt den Puffer und den Cache-Speicher aus der usedSpalte (das -bedeutet das) und fügt +sie der freeSpalte hinzu ( ) . (Rundungsproblem wird auftreten.)

(Die letzte Zeile zeigt den Status Ihres Swap Space.)

Mit freundlicher Genehmigung: https://unix.stackexchange.com/a/33549/14497

In Ihrem Fall ist 112 MB der vollständig freie Speicher, und wenn Sie den für die Zwischenspeicherung verwendeten Speicher berücksichtigen, der den Benutzeranwendungen bei Bedarf zugewiesen werden kann. dann ist 501 MB der tatsächlich maximal verfügbare Arbeitsspeicher.

saji89
quelle
Eine Person, die nach einem Auslesen des Speichers sucht, ist nie (oder fast nie) daran interessiert, wie viel Speicher vollständig frei ist, aber wie viel frei zu verwenden ist. Der zwischengespeicherte Speicher wird verwendet, kann aber auch kostenlos verwendet werden. Sie sollten sich das also ansehen.
Nanne
Ich bin mir nicht sicher, warum du das sagst? Es scheint zu implizieren, dass jemand den Cache absichtlich entfernen würde (was in der Tat eine schlechte Sache ist)? Der Punkt ist, dass das Laden von allem (wie ein Programm, das Sie verwenden möchten) in diesen Speicher tatsächlich eine Option ist. Sie möchten, dass die 112 so niedrig wie möglich ist, aber das würde Ihrer Theorie nach bedeuten, dass Sie keine Programme öffnen können. Nicht das Ziel würde ich sagen. Außerdem: Dieser Cache ist nicht nur ein Disc-Cache, sondern auch ein System-Cache und dergleichen
Nanne,
@Nanne, Ok. Ich stimme zu, Mann. Danke für die Korrektur. Ich habe meine Antwort aktualisiert, um sie wiederzugeben.
Saji89
##### DANKE ALLEN @ Nanne @ devav2 @ saji89 FÜR DAS TEILEN VON WISSEN - SIE SIND FANTASTISCH #####
amoooc
10

Die Antwort von @ saji89 ist exzellent, aber in diesen Tagen wird free -mdie -/+ buffers/cacheZeile nicht mehr gedruckt , sondern die Menge des verfügbaren Arbeitsspeichers in eine neue availableSpalte in der ersten Zeile eingefügt. Beispiel:

ubuntu@pg_master:~$ free -m
              total        used        free      shared  buff/cache   available
Mem:          61406        1571         506       17131       59328       42150
Swap:             0           0           0
ubuntu@pg_master:~$ free -V
free from procps-ng 3.3.10

Sie können das Commit to free (1) lesen, das die Zeile in ihrem Repo entfernt hat . Auch das Festschreiben zum Hinzufügen der neuen availableSpalte .

Paul A Jungwirth
quelle
4

free Befehl zeigt die Informationen zu nicht verwendetem und verwendetem Speicher und Auslagerungsspeicher an.

Unten finden Sie die Erklärung von http://www.linfo.org/free.html

In der ersten Zeile mit der Bezeichnung Mem wird die physische Speichernutzung angezeigt, einschließlich der den Puffern und Caches zugewiesenen Speichermenge. Ein Puffer, der auch als Pufferspeicher bezeichnet wird, wird normalerweise als Teil des Speichers definiert, der als temporärer Aufbewahrungsort für Daten dient, die an ein externes Gerät wie eine Festplatte, eine Tastatur, einen Drucker oder ein Netzwerk gesendet oder von diesem empfangen werden.

Die zweite Datenzeile, die mit - / + puffers / cache beginnt , zeigt die Größe des physischen Speichers an, der derzeit für den Systempuffercache reserviert ist. Dies ist insbesondere in Bezug auf Anwendungsprogramme von Bedeutung, da alle Daten, auf die von Dateien auf dem System zugegriffen wird, die mithilfe von Systemaufrufen read () und write ()1 ausgeführt werden, diesen Cache passieren. Dieser Cache kann den Datenzugriff erheblich beschleunigen, indem das Lesen oder Schreiben von oder auf die Festplatte oder eine andere Festplatte reduziert oder vermieden wird.

In der dritten Zeile, die mit Swap beginnt , werden der gesamte Swap-Speicherplatz sowie der derzeit verwendete und der noch verfügbare Speicherplatz angezeigt.

Analysieren Sie die Speichernutzung Ihres Systems

Sie haben den freeBefehl mit der Option '-m' verwendet, mit der das Ergebnis in Megabyte angezeigt wird

-m, --mega
              Display the amount of memory in megabytes.

Gesamtspeicher ist 595 (Gebraucht + frei)

Gebraucht: 482 Kostenlos: 112

482 MB von 595 MB werden von Ihrem System verwendet, wobei nur 93 MB von aktiven Programmen verwendet werden und sich die restlichen 324 MB im Cache befinden

Sagen wir also, wenn Sie in Zukunft ein Programm ausführen, das mehr als 120 MB benötigt. Alle 112 MB (derzeit frei) werden ausgegeben und die restlichen 8 MB werden aus dem nicht aktiven Programmpuffer / Cache entnommen.

Bearbeiten : Diesen Link gefunden , der eine gute Erklärung bietet.

devav2
quelle
Das halte ich nicht für richtig. Wenn Sie den Cache verwerfen, haben Sie 93 MB belegt, so dass Sie 501 übrig haben.
Nanne
Warum denkst du, ist es nicht richtig? Der freie Speicher auf dem OP-System beträgt 112 MB + 324 MB (zwischengespeichert). Wenn ein neues Programm gestartet wird, werden zuerst 112 MB und dann der Cache verwendet.
devav2
Im Grunde genommen, weil 595-93=501 und (geben oder nehmen Sie 1 MB für die Rundung), und es liest sich irgendwie so, als ob 112es die Zahl ist, nach der Sie denken, dass die Operation sucht.
Nanne
501 ist richtig und das versuche ich zu erklären. Von 595 wird 482 verwendet. In dem nur 93 ist der aktive Speicher von Programmen verwendet. Damit 112 dem freien zur Verfügung + steht, kann bei Bedarf mehr Speicher aus dem Cache entnommen werden, der bisher genutzt wurde und aktuell nicht aktiv ist.
Devav2
ok, dann stimme zu :)
Nanne