Apenas por diversão, eu queria assistir o que ls -lR /
faz à minha memória "buffers" em um sistema Linux. Como esperado, o valor aumentou. Mas notei que a "memória do aplicativo" (ou seja, "used" - (buffers + cache)) também aumentou, e não caiu novamente após o término do comando.
Então eu testei de novo depois de uma reinicialização e com o menor número possível de aplicativos (no caso de algum outro aplicativo estar usando a memória e eu não percebi). Eu gravei top -b -n 1
de saída antes e depois:
$ free -m
total used free shared buffers cached
Mem: 3879 413 3466 1 63 232
-/+ buffers/cache: 117 3762
Swap: 7059 0 7059
$ top -b -n 1
top - 19:33:36 up 11 min, 1 user, load average: 0,00, 0,02, 0,05
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,3 us, 0,2 sy, 0,0 ni, 97,9 id, 1,5 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 3972908 total, 423356 used, 3549552 free, 65308 buffers
KiB Swap: 7229324 total, 0 used, 7229324 free. 238424 cached Mem
(process list omitted)
$ ls -lR /
(output omitted)
$ free -m
total used free shared buffers cached
Mem: 3879 1293 2586 1 315 252
-/+ buffers/cache: 725 3154
Swap: 7059 0 7059
$ top -b -n 1
top - 19:36:19 up 14 min, 1 user, load average: 0,33, 0,25, 0,13
Tasks: 130 total, 1 running, 129 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0,4 us, 2,2 sy, 0,0 ni, 95,5 id, 1,8 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 3972908 total, 1324492 used, 2648416 free, 322580 buffers
KiB Swap: 7229324 total, 0 used, 7229324 free. 258976 cached Mem
(process list omitted)
A lista de processos permaneceu exatamente igual (exceto por algumas alterações na coluna TIME+
e no próprio processo top
, é claro), mostrando que nenhum processo está realmente usando o meio extra de Gigabyte de memória. Então, minha pergunta é: o que usa essa memória e ela será libertada eventualmente? Além disso, a mesma coisa também acontecerá quando eu usar meu sistema por um longo tempo e acessar muito o sistema de arquivos?