Por favor, considere o exemplo de saída que recebi do comando free
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 Mem used
(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 link link
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 assim:
buff/cache = kb_main_buffers+kb_main_cached = 365128 + 2113156 = 2478284
Isso é o mesmo que o 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 removida
Para mais informações, confira esses commits, onde essas alterações foram introduzidas: link link
A partir do novo campo available
, para os kernels Linux mais antigos que o 2.6.27, seu valor é o mesmo que o valor free
, 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: link
Então, a resposta específica para suas perguntas seria:
- A nova versão de
free
inclui buffers / cache nos cálculos dos valoresMem used/free
. - O valor
+/- buffers/cache
que costumava estar lá nas versões anteriores defree
agora está disponível como:-
- / + buffers / cache
used
= coluna atualMem used
(seu cálculo é detalhado acima) -
- / + buffers / cache
free
está disponível como o valor mais preciso na nova coluna atualavailable
-
- / + buffers / cache
N.B: Os nomes das variáveis kb_*
são os nomes internos usados no código-fonte.