Bitte beachten Sie die Beispielausgabe, die ich vom freeBefehl in meinem erhalten habe Ubuntu 12.04:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
Der Feldwert Memused (kb_main_used) wird jetzt folgendermaßen berechnet:
used = total - free - cached - buffers
Früher war es:
used = total - free
Diese Änderung wurde mit dem folgenden Commit eingeführt: https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9
Ein Zwischenwert:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
+/- Puffer / Cache-Wert wird wie folgt berechnet:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
Der neue Buff / Cache-Wert wird folgendermaßen berechnet:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Dies ist der gleiche buffers_plus_cachedUnterschied wie in früheren Versionen. Der Unterschied besteht darin, dass er zuvor intern verwendet wurde und jetzt direkt angezeigt wird und die weiter berechnete Zeile -/+ buffers/cacheentfernt wurde
Weitere Informationen finden Sie in den folgenden Commits, in denen diese Änderungen vorgenommen wurden:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procps-ng/procps/commit/c990871a59
Ab dem neuen availableFeld ist der Wert für Linux-Kernel, die älter als 2.6.27 sind, derselbe wie der freeWert, aber für die späteren Versionen des Kernels ist er etwas anders:
Estimation of how much memory is available for starting new
applications, without swapping. Unlike the data provided by the
cache or free fields, this field takes into account page cache
and also that not all reclaimable memory slabs will be reclaimed
due to items being in use (MemAvailable in /proc/meminfo,
available on kernels 3.14, emulated on kernels 2.6.27+,
otherwise the same as free)
Mit freundlicher Genehmigung:
http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
Die spezifische Antwort auf Ihre Fragen wäre also:
- Die neue Version von
freebezieht Puffer / Cache in die Berechnung von Mem used/freeWerten ein.
- Der
+/- buffers/cacheWert, der in früheren Versionen von vorhanden war, freeist jetzt verfügbar als:
- - / + puffer / cache
used = Aktuelle Mem usedSpalte (Berechnung wie oben beschrieben)
- - / + Puffer / Cache
free ist als genauerer Wert in der aktuellen neuen Spalte verfügbaravailable
NB: Die kb_*Variablennamen sind die internen Namen, die im Quellcode verwendet werden.