Por que o valor de VSIZE no topo é diferente do valor de VSZ (Virtual set size) em ps?

9

Eu sei VSZ em ps é para o espaço total de endereços alocado para o aplicativo e às vezes é alias como vsize (mencionado em man page de ps no linux), mas qual é a definição de VSIZE em top ? Esta saída de topo do iPhone é diferente do topo no Linux:

 PID COMMAND      %CPU   TIME   #TH #PRTS #MREGS  RPRVT  RSHRD  RSIZE  VSIZE
 1875 emma         0.0%  0:30.83   7   139    932 17868K  5328K    29M   181M

root# ps -eo pid,rss,vsz|grep 1875
 1875  29324   441324
    
por Ralph Wen 07.08.2011 / 19:42

1 resposta

5

O sistema de memória Linux é preenchido com muitas rotinas de utilitários de otimização de memória e compartilhamento de memória, fazendo com que a idéia de como a memória é compartilhada e consumida entre eles, uma abordagem complicada. saída de dados sob /proc filesystem. Particularmente, ps , RSS (memória de tamanho residente) e VSIZE (tamanho da memória virtual) são importantes, porém o VSIZE não mostra o uso preciso da memória e a diferença entre VSIZE e rss é o que é realmente pretendido e alocado ao programa durante a inicialização, mas pode não ser referenciado ainda. Como o programa pode ter muitas bibliotecas vinculadas, mas elas ainda não foram carregadas porque ainda não foram referenciadas no tempo de execução real do programa. O RSS fornece a memória total realmente usada pelo programa, mas pode não fornecer uma imagem real do consumo de memória, já que a maior parte da memória alocada pode ser compartilhada com outras instâncias do mesmo processo ou outros processos. Observar em /proc/<processid>/maps pode dar uma ideia aproximada de como a memória foi usada, mas a tranquilidade pode ser enganosa às vezes. Use pmap -x <pid> da linha de comando, útil para ver o espalhamento.

Os utilitários geralmente melhores são free e vmstat . free fornecerá detalhes gerais do consumo de memória atual e o vmstat poderá ser usado para ver com que frequência ele está sendo atualizado.

    
por 01.12.2011 / 13:52