Examinando Informações do Processo

O kernel fornece informações úteis sobre processo e ambiente. Estes comandos podem ser usados para visualizar estas informações.

O comando ps

Em Linux®, os encadeamentos Java™ são implementados como encadeamentos do sistema e podem estar visíveis na tabela de processo, dependendo da distribuição do Linux

A execução do comando ps fornece uma captura instantânea dos processos atuais. O comando ps obtém suas informações do sistema de arquivos /proc. A seguir há um exemplo do uso de ps:

ps -efwH

UID  PID  PPID  C STIME TTY   TIME        CMD
cass 1234 1231  0 Aug07  ?    00:00:00    /bin/bash
cass 1555 1234  0 Aug07  ?    00:00:02    java app
cass 1556 1555  0 Aug07  ?    00:00:00    java app
cass 1557 1556  0 Aug07  ?    00:00:00    java app
cass 1558 1556  0 Aug07  ?    00:00:00    java app
cass 1559 1556  0 Aug07  ?    00:00:00    java app
cass 1560 1556  0 Aug07  ?    00:00:00    java app    	   
e
Especifica para selecionar todos os processos.
f
Assegura que uma listagem completa seja fornecida.
l
Exibe no formato longo.
m
Mostra encadeamentos se eles não forem mostrados por padrão.
w
Um modificador de saída que assegura uma saída ampla.
H
Útil quando estiver interessado em encadeamentos Java porque ele exibe uma listagem hierárquica. Com uma exibição hierárquica, é possível determinar qual processo é o encadeamento primordial, qual é o gerenciador de encadeamentos e quais são os encadeamentos filhos. No exemplo anterior, o processo 1555 é o encadeamento primordial, enquanto o processo 1556 é o gerenciador de encadeamentos. Todos os processos-filhos possuem um ID de processo pai apontando para o gerenciador de encadeamentos.

O comando top

O comando top exibe os processos com uso mais intensivo de CPU ou de memória em tempo real. Ele fornece uma interface interativa para manipulação de processos e permite a classificação por critérios diferentes, como o uso de CPU ou o uso de memória. Pressione h ao executar top para ver todos os comandos interativos disponíveis.

O comando top exibe vários campos de informações para cada processo. O campo do processo mostra o número total de processos que estão em execução, mas divide as informações em tarefas que estão em execução, suspensas, interrompidas ou ativadas. Além disso, para exibir PID, PPID e UID, o comando top exibe informações sobre uso de memória e espaço de troca. Omemmostra estatísticas sobre o uso de memória, incluindo memória disponível, memória livre, memória usada, memória compartilhada e memória usada para buffers. O campo de troca mostra o espaço de troca total, o espaço de troca disponível e o espaço de troca usado.

O comando vmstat

O comando vmstat relata estatísticas de armazenamento virtual. Ele é útil para executar uma verificação de funcionamento geral em seu sistema porque relata sobre o sistema como um todo. Comandos, como top, podem ser usados para obter informações mais específicas sobre a operação do processo.

Quando você o usa pela primeira vez durante uma sessão, as informações são relatadas como médias desde a última reinicialização. O uso adicional produz relatórios que são baseados em um período de amostragem que pode ser especificado como uma opção. O vmstat 3 4 exibe valores a cada 3 segundos para uma contagem de quatro vezes Pode ser útil iniciar vmstat antes do aplicativo, fazê-lo direcionar sua saída a um arquivo e, posteriormente, estudar as estatísticas conforme o aplicativo foi iniciado e executado.

A saída básica deste comando é exibida nestas seções:

processos
Mostra quantos processos estão aguardando o tempo de execução, estão bloqueados ou foram descarregados para a área de troca.
memória
Mostra a quantidade de memória (em kilobytes) trocada, liberada, armazenada em buffer e armazenada em cache. Se a memória livre diminuir durante determinados estágios de suas execução dos aplicativos, pode haver uma fuga de memória.
trocar
Mostra os kilobytes por segundo de memória carregada da área de troca e descarregada para a área de troca no disco. A memória é descarregada para a área de troca no disco se não houver RAM suficiente disponível para armazená-la inteira. Valores grandes aqui podem ser uma dica de que não há RAM suficiente disponível (embora seja normal obter a troca quando o aplicativo é iniciado pela primeira vez).
io
Mostra o número de bloqueios por segundo de memória enviada para dispositivos de bloqueio e recebida deles.
sistema
Exibe as interrupções e os comutadores de contexto por segundo. Há uma penalidade no desempenho associada a cada comutador de contexto, de forma que um valor alto para esta seção pode significar que o programa não escalará bem.
cpu
Mostra uma interrupção do tempo do processador entre o tempo do usuário, o tempo do sistema e o tempo inativo. A figura de tempo inativo mostra o quão ocupado um processador está, com um valor baixo indicando que o processador está ocupado. É possível usar este conhecimento para ajudar a entender quais áreas de seu programa estão usando mais a CPU.