Existem várias maneiras de monitorar o uso da memória em um sistema Linux. Alguns podem ou não estar disponíveis dependendo de
- Qual versão você está executando
- Como o kernel está configurado
- Quais ferramentas de espaço do usuário estão incluídas no sistema de arquivos raiz
Como o Linux normalmente é um sistema de memória virtual, algumas estatísticas podem ser enganosas e / ou imprecisas. É importante cavar e entender o que cada estatística significa.
Com tudo isso dito, normalmente monitorei o uso da memória executando o vmstat para ter uma idéia do uso total de memória:
# vmstat -s
127168 total memory
44072 used memory
33296 active memory
2164 inactive memory
83096 free memory
0 buffer memory
20468 swap cache
0 total swap
0 used swap
0 free swap
582750 non-nice user cpu ticks
0 nice user cpu ticks
160883 system cpu ticks
7448748 idle cpu ticks
0 IO-wait cpu ticks
16066 IRQ cpu ticks
18249 softirq cpu ticks
0 stolen cpu ticks
0 pages paged in
0 pages paged out
0 pages swapped in
0 pages swapped out
15079537 interrupts
28629740 CPU context switches
1344249586 boot time
25532 forks
"free" Também lhe dará uma visão geral do uso da memória. Se eu vir algo inesperado, examinarei os processos suspeitos examinando os arquivos no procfs. Bons arquivos para olhar são
/ proc / PID / maps - Isso lista toda a memória atualmente mapeada pelo processo
/ proc / PID / smaps - Fornece mais detalhes sobre quanta memória é residente / compartilhada / suja / etc ... Este arquivo pode ser detalhado, mas um script Python pode ser escrito para gerar dados mais significativos