Como desabilitar o formato de saída larga livre do procps-ng 3.3.10?

4

Estou escrevendo um script que supostamente me diz a quantidade de memória física livre excluindo caches e notei que meu sistema Fedora mostra um formato de saída diferente de um sistema CentOS em que tenho uma conta Unix:

$ free
              total        used        free      shared  buff/cache   available
Mem:        7865868     3934924      241300      485916     3689644     3093784
Swap:       8388604      950988     7437616
$ ssh -q centos free
             total       used       free     shared    buffers     cached
Mem:       1921876    1848024      73852          0      10120      87124
-/+ buffers/cache:    1750780     171096
Swap:      2097148     240428    1856720
$ free -V                           
free from procps-ng 3.3.10
$ ssh -q centos free -V
procps version 3.2.8

Existe alguma maneira de fazer com que minha saída do Fedora free se pareça com a do CentOS?

    
por d33tah 21.01.2015 / 14:57

1 resposta

6

Não, isso não é possível.

Note que não é apenas uma questão de formatação. O programa free em procps-ng foi recentemente atualizado para incluir a nova MemAvailable métrica que foi introduzida recentemente no kernel Linux e que é uma indicação muito melhor da memória realmente disponível do que a típica (e muitas vezes errada) estimativa de free + buffers / cache "(veja abaixo).

O programa free incluído no procps-ng 3.3.10 não fornece nenhuma opção para desabilitar esta informação. E, de fato, o que você está vendo já é o formato "condensado". Também existe uma opção "ampla" (tente -w ou --wide ) que não agrega buffers e cache.

Se você estiver escrevendo um script para descobrir a memória disponível, sugiro usar o valor "disponível" informado por livre, em vez de "free + buffers / cache". Veja este comentário na lista de discussão Linux Kernel o que explica porque MemAvailable foi introduzido:

Many load balancing and workload placing programs check /proc/meminfo to estimate how much free memory is available. They generally do this by adding up "free" and "cached", which was fine ten years ago, but is pretty much guaranteed to be wrong today.

It is wrong because Cached includes memory that is not freeable as page cache, for example shared memory segments, tmpfs, and ramfs, and it does not include reclaimable slab memory, which can take up a large fraction of system memory on mostly idle systems with lots of files.

    
por 22.01.2015 / 18:03