Você pode ver que a coluna SHR
está exibindo a mesma quantidade de memória que RES
- isso significa que praticamente 100% da memória residente dessa tarefa em particular consiste em segmentos de memória compartilhada. Mesmo isso não está dando a você uma percepção completa, já que RES
é apenas a quantidade de memória que não é paginada.
Para descobrir qual é o consumo real de memória de um processo, tente usar um método mais inteligente como ps(1)
com campos selecionados (veja a opção -o
e a seção STANDARD FORMAT SPECIFIERS
do manual). / p>
Observe que, além do campo size
(que é uma estimativa muito aproximada), o tamanho total de um processo em termos de memória é difícil de avaliar pelo seu valor de face precisamente porque parte de sua memória pode ser compartilhada com outros processos e não podemos dizer imediatamente quantas dessas páginas estão sujas (veja o parágrafo da seção NOTES
em SIZE
e RSS
na página de manual).
Para saber que esses processos estão realmente usando os segmentos de memória compartilhada same , você precisa examinar a saída do comando ipcs(1)
e examinar os segmentos de memória compartilhada que possuem um número suspeito de nattch
processa.
Depois, você precisa examinar as informações detalhadas desses segmentos usando ipcs -m -i <id>
, que exibirá os processos reais anexados.
Se isso soa muito complicado, olhe para ele como um exercício de desafio - escreva um script que, dada uma ID de processo, imprima a lista de IDs de SHM a que este processo está anexado e uma lista de PIDs que compartilhe esses SHM IDs com. ;)