Como posso medir o uso de memória real de meus processos em execução? [duplicado]

1

Eu tenho dois servidores, server1 e server2. Ambos são blades HP idênticos, executando exatamente o mesmo sistema operacional (RHEL 5.5). Aqui está a saída de free para ambos:

### server1:
             total       used       free     shared    buffers     cached
Mem:       8017848    2746596    5271252          0     212772    1768800
-/+ buffers/cache:     765024    7252824
Swap:     14188536          0   14188536

### server2:     
             total       used       free     shared    buffers     cached
Mem:       8017848    4494836    3523012          0     212724    3136568
-/+ buffers/cache:    1145544    6872304
Swap:     14188536          0   14188536

Se bem entendi, server2 está usando significativamente mais memória para o cache de E / S de disco, que ainda conta como memória usada.

Mas ambos estão executando o mesmo sistema operacional e, se bem me lembro, configurei os dois com os mesmos parâmetros quando eles foram instalados. Eu fiz um diff on /etc/sysctl.conf e eles são idênticos.

O problema é que estou coletando o uso de memória e outras métricas ao longo de um período de tempo (por exemplo: vmstat, iostat, etc.) enquanto um carregamento é gerado no sistema. A memória usada para armazenar em cache está jogando fora meus cálculos nos resultados.

Como posso medir o uso de memória real de meus processos em execução, em vez de usar memória pelo sistema operacional para armazenar em cache? O used - (buffers + cached) é uma maneira válida de medir isso?

    
por NullUser 29.10.2012 / 22:57

2 respostas

2

Isso realmente não é um problema ... Você está tentando resolver alguma coisa?

A outra sugestão sobre como liberar seu cache de página, inodes e dentries por meio do parâmetro drop_caches do subsistema de VM é apropriada. Tente isso primeiro.

Consulte: link para contextualização e contexto.

Se você estiver realmente curioso para saber o que está consumindo sua RAM ou cache de disco, consulte o utilitário vmtouch ou consulte parte superior e classificar por uso de memória (digite "M"). A execução de pmap -x nos PIDs mais altos resultantes pode dar uma ideia do que está no sistema de memória virtual (cache).

    
por 29.10.2012 / 23:43
1

Você pode limpar o cache usando

sync; echo 3 > /proc/sys/vm/drop_caches

e depois testá-lo usando

free -t -m
    
por 29.10.2012 / 23:02