Si prega di considerare l'output di esempio che ho ricevuto dal free
comando nel mio Ubuntu 12.04
:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
Il valore del campo Memused
(kb_main_used) viene ora calcolato in questo modo:
used = total - free - cached - buffers
In precedenza, era:
used = total - free
Questa modifica è stata introdotta nel seguente commit https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9
Un valore intermedio:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
+/- il valore dei buffer / cache viene calcolato in questo modo:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
Il nuovo valore buff / cache viene calcolato in questo modo:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Questo è lo stesso di buffers_plus_cached
, usato nelle versioni precedenti, la differenza è che in precedenza era usato internamente, e ora è stato visualizzato direttamente, e l'ulteriore riga calcolata, -/+ buffers/cache
è stata rimossa
Per maggiori informazioni, controlla questi commit, dove sono state introdotte queste modifiche:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procps-ng/procps-ng/proc89/b9d1bbdbdd0dcbdcc0d0dc0dcxdc
A partire dal nuovo available
campo, per i kernel Linux precedenti alla 2.6.27, il suo valore è uguale al free
valore, ma per le versioni successive del kernel, è un po 'diverso:
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)
Per gentile concessione:
http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
Quindi, la risposta specifica alle tue domande sarebbe:
- La nuova versione di
free
include buffer / cache nei calcoli dei Mem used/free
valori.
- Il
+/- buffers/cache
valore che era presente nelle versioni precedenti di free
è ora disponibile come:
- - / + buffer / cache
used
= Mem used
colonna corrente (il suo calcolo è dettagliato sopra)
- - / + buffer / cache
free
è disponibile come valore più accurato nella nuova colonna correnteavailable
NB: I kb_*
nomi delle variabili sono i nomi interni utilizzati nel codice sorgente.