Parece que você está exibindo free
, olhando para a primeira linha e enlouquecendo. Isso está ok; muitas pessoas fazem isso.
Ignore a primeira linha de saída de free
. Mesmo. Linux é muito agressivo com o armazenamento em cache de dados do disco, incluindo inclusive páginas de memória virtual "trocadas", em RAM e todos os dados em cache são contados como "usados" na primeira linha de free
, mesmo embora possa ser disponibilizado novamente em um microssegundo (ou menos, nos dias de hoje), se necessário.
Você precisa examinar a segunda linha de saída de free
, a chamada -/+ buffers/cache:
. Essa é a linha que lhe dirá quanto a memória está realmente amarrada pelos programas em execução, ignorando o que está sendo usado no momento por buffers e cache.
Por exemplo, minha máquina atualmente mostra:
total used free shared buffers cached
Mem: 3083924 2177300 906624 0 461344 837008
-/+ buffers/cache: 878948 2204976
Swap: 4000148 0 4000148
Embora existam apenas 906624 bytes de RAM completamente inutilizados no momento, há 461344 bytes adicionais de buffers e 837008 bytes de dados em cache que podem ser disponibilizados mais ou menos instantaneamente se algo mais importante (ou seja, qualquer coisa) precisa da memória, me dando um total de 2204976 bytes realmente disponíveis para mim.