A resposta curta é que o resto de sua memória é usado para armazenar seus aplicativos em cache.
A resposta longa pode ser encontrada aqui .
Eu li um número de top
de perguntas de uso de memória, mas não acho que elas respondam isso.
Aqui está a parte mais significativa de uma execução top
:
top - 01:11:41 up 4 days, 1:06, 3 users, load average: 0.00, 0.03, 0.26
Tasks: 86 total, 1 running, 84 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.4%us, 0.4%sy, 0.0%ni, 99.2%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Mem: 1022816k total, 986704k used, 36112k free, 11200k buffers
Swap: 1048572k total, 419088k used, 629484k free, 408172k cached
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
2022 django 20 0 463m 87m 688 S 0.4 8.7 0:44.06 redis-server
6047 django 20 0 106m 25m 3900 S 0.4 2.6 0:16.57 python
6046 django 20 0 40892 13m 2852 S 0.0 1.4 0:00.14 python
6887 postgres 20 0 98752 5240 4100 S 0.0 0.5 0:00.60 postgres
6512 root 20 0 70820 2528 1776 S 0.0 0.2 0:00.03 sshd
3614 root 20 0 70820 2452 1696 S 0.0 0.2 0:00.03 sshd
6892 postgres 20 0 99028 2044 720 S 0.0 0.2 0:00.53 postgres
12983 django 20 0 18332 1968 1156 S 0.0 0.2 0:00.06 bash
3627 joe 20 0 71148 1660 632 S 0.0 0.2 0:00.84 sshd
6890 postgres 20 0 98752 1640 500 S 0.0 0.2 0:02.59 postgres
3628 joe 20 0 18056 1588 1056 S 0.0 0.2 0:00.10 bash
6537 postgres 20 0 18000 1580 1100 S 0.0 0.2 0:00.04 bash
6893 postgres 20 0 70296 1564 296 S 0.0 0.2 0:00.38 postgres
708 mysql 20 0 166m 1560 408 S 0.0 0.2 3:08.15 mysqld
9221 root 20 0 31724 1456 1148 S 0.0 0.1 0:00.01 sudo
Isso indica que 986704k de 1022816k é usado (eu faço isso em cerca de 96%). No entanto, os percentuais dos 3 principais processos somam 12,7%. Algo está usando quase toda a minha memória RAM e não posso dizer o que é. free
mostra números semelhantes.
Alguma sugestão de tentar descobrir o que está usando tudo isso?
(Eu noto que há 1 processo zumbi. Poderia ser isso?)
A resposta curta é que o resto de sua memória é usado para armazenar seus aplicativos em cache.
A resposta longa pode ser encontrada aqui .
É apenas o que acontece de estar lá, provavelmente os dados são lidos ou gravados no disco. Tornar essa memória livre é uma proposta perdida em muitos níveis:
1) Se os dados forem necessários novamente, e o sistema liberar a memória, ele terá que lê-lo do disco.
2) Tornar a memória livre requer esforço e, se a memória for necessária para outra coisa, o sistema terá que usá-la novamente, duplicando o desperdício. É mais eficiente fazer a transição da memória diretamente de um uso para outro em vez de um passo.
3) A demanda por memória é baixa. Portanto, há pouca necessidade de memória livre.
Portanto, os sistemas operacionais modernos só liberam a memória se não houver absolutamente nada de útil que possa conter nessa memória ou se houver demanda por memória livre. Caso contrário, a memória livre é perdida na memória. Não é como se você usa menos hoje você pode usar mais amanhã.
Tags memory-usage top linux