Na saída de free
:
- "free" representa a memória que não é usada;
- “buff / cache” representa a memória usada pelos buffers (dados na memória que estão esperando para serem gravados no disco) e cache (dados no disco que também estão disponíveis na memória);
- "disponível" representa a quantidade de memória que um processo pode alocar e usar sem bater na troca (na maioria das vezes é esse valor que você deve se preocupar).
Quando um processo grava uma grande quantidade de dados, esses dados vão para os buffers antes de serem gravados no disco. Esses buffers ocupam espaço na memória, então a quantidade de memória não utilizada diminui. Mas essa memória pode ser disponibilizada, então a quantidade de memória disponível não diminui.
Quando você exclui o arquivo, os buffers não são mais necessários e são recuperados (não vale a pena mantê-los como cache).
Os buffers aumentam quando os processos gravam dados; eles diminuem quando esses dados são gravados no disco. O cache aumenta quando os dados em disco são disponibilizados na memória (lendo-os do disco ou convertendo buffers em cache); diminui quando a pressão da memória significa que não é mais útil mantê-la por perto. Ambos vivem na memória, portanto seu tamanho afeta a quantidade de memória livre; mas ambos podem ser recuperados, portanto, seu tamanho não afeta a quantidade de memória disponível.