Aqui está um exemplo de saída grátis:
% free
total used free shared buffers cached
Mem: 24683904 20746840 3937064 254920 1072508 13894892
-/+ buffers/cache: 5779440 18904464
Swap: 4194236 136 4194100
A primeira linha de números ( Mem: ) lista
-
totalmemory -
usedmemory -
freememory - uso de
shared - uso de
buffers - caches de sistema de arquivos de uso (
cached)
Nesta linha, used inclui os buffers e cache e isso impacta gratuitamente.
Esta não é a sua "verdadeira" memória livre, porque o sistema irá despejar o cache, se necessário, para satisfazer os pedidos de alocação.
A próxima linha ( -/+ buffers/cache: ) nos fornece a memória real usada e livre como se não houvesse buffers ou cache.
A linha final ( Swap ) fornece o uso da memória swap. Não há buffer ou cache para swap, pois não faria sentido colocar essas coisas em um disco físico.
Para enviar a memória usada (menos buffers e cache) você pode usar um comando como:
% free | awk 'FNR == 3 {print $3/($3+$4)*100}'
23.8521
Isso pega a terceira linha e divide usado / total * 100.
E para memória livre:
% free | awk 'FNR == 3 {print $4/($3+$4)*100}'
76.0657