Por favor, considere a saída de amostra que obtive do free
comando no meu Ubuntu 12.04
:
total used free shared buffers cached
Mem: 8074640 6187480 1887160 377056 365128 2113156
-/+ buffers/cache: 3709196 4365444
Swap: 15998972 82120 15916852
O valor do campo Memused
(kb_main_used) agora é calculado da seguinte forma:
used = total - free - cached - buffers
Anteriormente, costumava ser:
used = total - free
Esta alteração foi introduzida no seguinte commit https://gitlab.com/procps-ng/procps/commit/6cb75efef85f735b72e6c96f197f358f511f8ed9
Um valor intermediário:
buffers_plus_cached = buffers (kb_main_buffers) + cached (kb_main_cached) = 365128 + 2113156 = 2478284
O valor de +/- buffers / cache é calculado da seguinte forma:
buffers = kb_main_used - buffers_plus_cached = 6187480 - 2478284 = 3709196
/
cache = kb_main_free + buffers_plus_cached = 1887160 + 2478284 = 4365444
O novo valor de buff / cache é calculado da seguinte maneira:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
É o mesmo que buffers_plus_cached
, usado nas versões anteriores, a diferença é que anteriormente ele era usado internamente, e agora é exibido diretamente e a linha calculada adicional -/+ buffers/cache
foi removido
Para obter mais informações, verifique esses commits, onde essas alterações foram introduzidas:
https://gitlab.com/procps-ng/procps/commit/f47001c9e91a1e9b12db4497051a212cf49a87b1
https://gitlab.com/procps-ng/procps/commit/c9908bb77d9af79005ad9d
No novo available
campo, para kernels Linux anteriores a 2.6.27, seu valor é igual ao free
valor, mas para as versões posteriores do Kernel, é um pouco diferente:
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)
Cortesia:
http://manpages.ubuntu.com/manpages/xenial/en/man1/free.1.html
Portanto, a resposta específica para suas perguntas seria:
- A nova versão do
free
inclui buffers / cache nos cálculos de Mem used/free
valores.
- O
+/- buffers/cache
valor que costumava estar presente nas versões anteriores do free
agora está disponível como:
- - / + buffers / cache
used
= Mem used
coluna atual (seu cálculo está detalhado acima)
- - / + buffers / cache
free
está disponível como o valor mais preciso na nova coluna atualavailable
NB: Os kb_*
nomes das variáveis são os nomes internos usados no código-fonte.