Eu sei que VSZ in ps
é para o espaço total de endereços alocado para o aplicativo e às vezes é aliasizado como vsize (mencionado na página de manual do ps
linux), mas qual é a definição de VSIZE top
? Esta saída superior do iPhone é diferente da superior 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
top
no IOS não inclua objetos compartilhados no vsize, ou algo assim.Respostas:
O sistema de memória Linux é preenchido com muitas rotinas de utilitários de otimização de memória e compartilhamento de memória, criando uma idéia complicada de como a memória é compartilhada e consumida, uma abordagem complicada. A saída de ps e outros comandos relacionados ao ps aumentam sua saída a partir de dados no
/proc
sistema de arquivos. Particularmenteps
, RSS (memória de tamanho residente) e VSIZE (tamanho da memória virtual) são importantes, no entanto, o VSIZE não mostra o uso exato da memória e a diferença entre VSIZE e rss é o que é realmente destinado e alocado ao programa durante a inicialização, mas ainda não pode ser referenciado. 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 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, pois a maior parte da memória alocada pode ser compartilhada com outras instâncias do mesmo processo ou de outros processos. Olhar para baixo/proc/<processid>/maps
pode dar uma idéia aproximada de como a memória foi usada, mas elas podem ser enganosas às vezes. Usarpmap -x <pid>
na linha de comando, é útil ver a propagação.Os utilitários frequentemente melhores são
free
evmstat
.free
fornecerá detalhes gerais sobre o consumo atual de memória e o vmstat pode ser usado para ver com que frequência ele está sendo atualizado.fonte