Linux / Comando top: acompanhar CPU, memória e processos

top atualiza a visão de uso da unidade central de processamento (CPU), da memória e dos processos no Linux. Use as atualizações para identificar quais tarefas consomem recursos e se o comportamento persiste. A tecla q encerra a tela de top; ela não encerra os processos que estão sendo observados.

Sintaxe e requisitos

top [opções]

Os exemplos se referem ao top do procps-ng em Linux. Confira top --version, top --help e man top na máquina de destino: opções, unidades, colunas e configuração salva podem mudar a apresentação. Para o modo interativo, use um terminal com espaço suficiente para ler o resumo e os cabeçalhos.

Abrir, ordenar e sair da tela interativa

Para iniciar a consulta:

top

O resumo do sistema aparece acima da lista de tarefas. Durante a execução, pressione P maiúsculo para ordenar por %CPU, M maiúsculo para ordenar por %MEM e q minúsculo para sair. São teclas dentro de top, não comandos a digitar no prompt do shell. Use h ou ? para consultar a ajuda da versão instalada.

Observe mais de uma atualização e confira a coluna que está servindo de critério. Uma tarefa pode usar muitos recursos durante uma operação curta e voltar ao normal. Compare a duração, a função da tarefa e o impacto percebido na aplicação antes de concluir que há um problema.

Acompanhar um processo específico

O número 1234 é ilustrativo. Substitua-o pelo identificador de processo, ou PID, que você já confirmou:

top -p 1234

Você pode localizar e conferir esse identificador com o comando ps. A opção -p restringe as tarefas monitoradas; no modo de threads, a apresentação tem regras próprias para o grupo de threads do PID. Uma thread é uma linha de execução dentro de um processo. Confira o modo e o cabeçalho ao comparar contagens.

Um PID pode deixar de existir durante a observação. Se a linha desaparecer, confirme novamente a identidade e o estado da tarefa. Não interprete uma lista vazia como prova de que o sistema inteiro está sem atividade, pois a consulta foi filtrada.

Obter uma saída de texto limitada

Para receber um quadro em modo de lote e terminar:

top -b -n 1

A opção -b usa saída de texto sem interação; -n 1 limita a execução a um quadro. Para observar três quadros com intervalo de um segundo, por exemplo, use top -b -d 1 -n 3. Compare os quadros posteriores em vez de tratar uma única amostra como uma tendência. A opção -d define o intervalo, e a política de modo seguro pode restringir alterações desse intervalo.

O primeiro quadro e os posteriores não devem ser comparados sem considerar como a versão obtém a amostra inicial. O campo TIME+ também tem outro significado: é tempo de CPU acumulado, com precisão de centésimos de segundo, não a porcentagem de uso no último intervalo.

Ler o resumo e as colunas

Para visualizar apenas o início da saída textual:

top -b -n 1 | head -n 8

Esquema abreviado da apresentação, com valores omitidos; não é uma saída literal nem uma garantia de que essas linhas ocuparão as oito primeiras posições:

top - ... load average: ...
Tasks: ... total, ... running
%Cpu(s): ... us, ... sy, ... id
MiB Mem : ... total, ... free, ... used
    PID USER      %CPU %MEM COMMAND

Load average mostra médias de carga para 1, 5 e 15 minutos. São indicadores diferentes da porcentagem de CPU; o guia de uptime e carga do sistema explica a leitura dessas médias. A linha Tasks resume estados de tarefas ou threads, conforme o modo, e a tabela abaixo do resumo contém as informações por tarefa.

Na linha %Cpu(s), us corresponde à execução de processos de usuário sem ajuste de nice (valor ligado à prioridade de escalonamento), sy à execução no kernel e id ao tempo ocioso. O valor wa indica espera por conclusão de entrada e saída; ele não identifica, sozinho, um disco defeituoso. Confira a categoria do número antes de atribuir todo o percentual a uma aplicação.

Nas linhas de tarefas, PID identifica a tarefa, USER mostra o usuário efetivo e COMMAND pode mostrar o nome do programa ou a linha de comando, conforme a configuração. O %CPU refere-se ao intervalo desde a atualização anterior. Em sistemas com vários processadores, um processo com várias threads pode ultrapassar 100% quando o uso não é dividido pelo número total de CPUs. O modo Irix/Solaris influencia essa normalização; não trate todo valor acima de 100% como erro.

Em memória, RES representa a parte residente do espaço do processo, não enviada à área de troca (swap); VIRT inclui memória virtual usada ou reservada e não equivale à quantidade de memória física ocupada. O %MEM relaciona RES à memória física total. No resumo, free e avail são diferentes: avail estima o que pode ser disponibilizado para novas aplicações sem swap, incluindo memória recuperável. Um valor free baixo, isoladamente, não demonstra falta de memória.

Confira também a unidade indicada: MiB significa mebibyte, igual a 1.048.576 bytes. As unidades do resumo e das colunas podem ser ajustadas separadamente. Uma comparação entre telas precisa considerar essas unidades e o modo de exibição.

A verificação disponível usou Bash 5.3.9 do Git para Windows, onde top não estava instalado. Os quatro blocos passaram pela análise de sintaxe, mas as tentativas diretas retornaram 127. Na tubulação com head, o status final foi 0, apesar da falha de top; os status individuais foram 127 e 0. Isso não verifica uma coleta de CPU ou memória no Linux. Se a saída vier vazia, leia o diagnóstico de top e teste a consulta sem a tubulação.

Opções para limitar a observação

Opção Efeito no procps-ng
-p PID Seleciona os PIDs a monitorar; considere o modo de threads usado.
-d segundos Define o intervalo entre atualizações, sujeito às restrições do modo seguro.
-b Usa o modo de lote sem aceitar teclas interativas.
-n quantidade Limita o número de quadros produzidos antes de terminar.

Distinguir consulta e alteração de processos

Sair com q apenas fecha top. Já k abre a operação de envio de sinal a uma tarefa, e r permite alterar o valor de nice, relacionado à prioridade de escalonamento. Essas operações podem modificar o trabalho observado. Os exemplos deste texto se limitam à consulta; para interpretar uma linha não é necessário encerrar a tarefa nem mudar sua prioridade.

Se a aplicação estiver lenta, use os dados para escolher a próxima investigação: confirme o PID e o comando, observe se o consumo se repete e relacione o período com a atividade da aplicação. Uma tela de top ajuda a localizar padrões, mas não demonstra, sozinha, a causa da lentidão nem a saúde de um serviço.

Pergunta frequente

Como sair de top sem encerrar as aplicações?

No modo interativo, pressione q dentro da tela de top. Isso encerra o monitor. No modo de lote, use -n para limitar os quadros desde a abertura; esse modo não aceita as teclas interativas.

Documentação

Consulte o manual de top do procps-ng e a página de top publicada pelo Debian para os modos, os campos e as teclas da implementação.