Pergunta

Qual é a maneira correta de obter o tamanho do processo Solaris, HP-UX e AIX?Devemos usar top ou ps -o vsz ou alguma outra coisa?

Foi útil?

Solução

As definições exatas de vsize, rss, rprvt, rshrd, e outras abreviações de aparência obscura variam de sistema operacional para sistema operacional.As páginas de manual do top e ps os comandos terão algum tipo de descrição, mas todas essas descrições são bastante simplificadas (ou são baseadas em implementações de kernel extintas).
O "tamanho do processo" como conceito é terrivelmente difícil de definir no caso geral.As respostas em instâncias específicas dependem muito da implementação real do gerenciamento de memória no sistema operacional e raramente são tão satisfatórias quanto o conceito organizado de "tamanho do processo" que existe nas mentes da maioria dos usuários (e da maioria dos desenvolvedores).

Por exemplo, nenhum desses números (nem, provavelmente, qualquer combinação deles) pode ser usado para dizer exatamente quantos processos desse tipo podem ser executados ao mesmo tempo em uma determinada quantidade de memória livre.Mas, na verdade, sua melhor aposta é chegar a esse ponto:por que você deseja esse número e para que o usará?Dadas essas informações, acho que você obterá respostas mais úteis.

Outras dicas

No Solaris, você pode obter informações detalhadas sobre o uso de memória de um processo com o pmap comando.Em particular, pmap -x <pid> mostra quanto da memória de um processo é compartilhada e quanto é usado especificamente por esse processo.Isto é útil para calcular o uso "marginal" de memória de um processo - com esta técnica você pode evitar a contagem dupla de bibliotecas compartilhadas.

Sim, você está certo em bloquear no VSZ.

ps u fornecerá o VSZ e o RSS, que são o tamanho da memória virtual e o tamanho do conjunto residente.O RSS é a quantidade de memória física alocada para o processo e o VSZ é o tamanho da memória virtual do processo.Se você tiver várias cópias de um programa em execução, grande parte da memória do VSZ será compartilhada entre esses processos.

Resumi o tamanho do conjunto residente para todos os processos assim (como root):

ps ax -o rss | awk '{rss += $1;} END { print rss}'
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top