O comando top
no Linux é uma ferramenta essencial em sistemas operacionais do tipo Unix. Sua interface oferece uma visão detalhada dos processos em execução e do uso de recursos do sistema. Mas você sabia que ele também oferece suporte a cores, realces e até mesmo gráficos básicos?
Um Centro de Informações Detalhado
O comando top
, em sua forma original,
remonta a 1984
, e desde então surgiram várias versões. Para este artigo, estamos usando o Ubuntu 18.04 com todas as atualizações e a versão 3.3.12 do top
. Também verificamos o funcionamento em dois outros computadores de teste, um com Fedora e outro com Manjaro.
A tela padrão do top
é projetada para mostrar o máximo de informações possível na janela do terminal. Essa riqueza de dados é fundamental para a administração do sistema. Um bom administrador deve ser capaz de identificar problemas emergentes e agir antes que eles causem interrupções no serviço. O top
fornece um painel com diversas métricas que auxiliam nessa tarefa.
A interface é, antes de tudo, funcional, e não exatamente intuitiva. Há muitas abreviações e, à primeira vista, a tela pode parecer confusa e pouco amigável. No entanto, com algumas teclas, você pode ajustar o conteúdo e o formato da tela para atender às suas necessidades.
Verificando sua Versão do top
Para verificar qual versão do top
você está usando, digite o seguinte no terminal:
top -v
Se a sua versão for muito posterior à 3.3.12, pode haver incompatibilidades com alguns dos recursos que vamos abordar.
A Interface Padrão
Para iniciar o top
, digite o seguinte e pressione “Enter”:
top
A tela padrão é dividida em duas áreas: o painel de resumo e a lista de processos. Por padrão, o top
atualiza a tela a cada três segundos.
A primeira linha do painel mostra o tempo atual, há quanto tempo o sistema está em execução, o número de usuários conectados e a média de carga nos últimos um, cinco e 15 minutos. A segunda linha informa o número de tarefas e seus estados: em execução, interrompidas, em espera ou “zumbis”.
A terceira linha exibe as seguintes métricas de uso da CPU:
us
: Tempo gasto pela CPU executando processos do “espaço do usuário”.
sy
: Tempo gasto executando processos do “espaço do kernel” do sistema.
ni
: Tempo gasto executando processos com um valor “nice” definido manualmente.
id
: Tempo de inatividade da CPU.
wa
: Tempo que a CPU aguarda a conclusão de operações de E/S.
hi
: Tempo gasto em tratamento de interrupções de hardware.
si
: Tempo gasto em tratamento de interrupções de software.
st
: Tempo perdido devido à execução de máquinas virtuais (“tempo de roubo”).
A quarta linha mostra a quantidade total de memória física (
em kibibytes) e quanto dela está livre, em uso e armazenada em buffer ou cache.
A quinta linha exibe a quantidade total (também em kibibytes) de memória swap e quanto dela está livre, em uso e disponível. A memória disponível inclui a que pode ser recuperada de caches.
Os títulos das colunas na lista de processos são:
PID
: Identificador do processo.
USUÁRIO
: Proprietário do processo.
PR
: Prioridade do processo.
NI
: Valor “nice” do processo.
VIRT
: Memória virtual usada pelo processo.
RES
: Memória residente (física) usada pelo processo.
SHR
: Memória compartilhada usada pelo processo.
S
: Status do processo (veja a lista abaixo).
%CPU
: Porcentagem do tempo de CPU usado pelo processo desde a última atualização.
%MEM
: Porcentagem de memória física usada pelo processo.
TIME+
: Tempo total de CPU usado pelo processo em centésimos de segundo.
COMANDO
: Nome do comando ou linha de comando completa.
Os valores de memória são mostrados em kibibytes. A coluna COMANDO
pode não aparecer na tela inicial.
O status do processo pode ser um dos seguintes:
D
: Em espera ininterrupta.
R
: Em execução.
S
: Em espera (dormindo).
T
: Rastreado (parado).
Z
: Zumbi.
Pressione a tecla Q
para sair do top
.
Navegando pela Tela
Use as setas para cima e para baixo, as teclas Home, End, Page Up e Page Down para rolar a lista de processos e visualizar todos eles.
As setas para a esquerda e para a direita permitem rolar a lista de processos horizontalmente para visualizar todas as colunas, mesmo aquelas que não cabem na tela.
Na imagem abaixo, usamos a seta para a direita algumas vezes para visualizar a coluna COMANDO
.
Alterando as Unidades Numéricas
Para alterar as unidades de exibição para valores mais legíveis, pressione a tecla E
(maiúscula) para alternar entre as unidades de memória usadas no painel de resumo (kibibytes, mebibytes, gibibytes, tebibytes, pebibytes e exbibytes). A unidade atual é mostrada na quarta e quinta linha do painel.
A tecla e
(minúscula) faz a mesma coisa, mas para os valores na lista de processos.
Na imagem abaixo, definimos as unidades do painel para gibibytes (E
) e as unidades da lista de processos para mebibytes (e
).
Modificando o Conteúdo do Resumo
Você pode personalizar quais informações são exibidas no painel de resumo, ou até mesmo remover as linhas completamente.
A tecla l
ativa ou desativa a linha de resumo de carga (a primeira linha). Na imagem abaixo, removemos a linha de resumo de carga.
Se o seu computador possui um processador
multi-core
, você pode usar a tecla 1
para ver as estatísticas de cada núcleo individualmente. Em nosso computador de teste, temos quatro CPUs. Ao pressionar 1
, podemos observar o uso de cada uma delas.
Obviamente, essa opção ocupa mais espaço na tela.
Você pode usar a tecla t
para alternar a exibição das informações da CPU para gráficos simples em formato
ASCII, mostrando a porcentagem de uso de cada CPU.
Para cada CPU, o top
mostra três números e um gráfico. Da esquerda para a direita, os números representam:
A porcentagem combinada de us
e ni
(espaço do usuário + tarefas com prioridade “nice” alterada).
A porcentagem sy
(espaço do kernel).
O total (arredondado para um valor inteiro).
Pressione t
novamente para alterar o gráfico para caracteres de bloco sólido.
Pressione t
mais uma vez para remover a exibição de CPU e a linha de resumo de tarefas completamente.
Use a tecla m
para percorrer os diferentes modos de exibição da memória. A primeira vez que você pressiona m
, as estatísticas são substituídas por um gráfico ASCII.
Outro pressionamento de m
altera o gráfico para caracteres de bloco sólido.
Pressione m
mais uma vez para remover as linhas da memória.
Se desejar, você pode exibir os gráficos de CPU e memória simultaneamente. Basta pressionar t
e m
até obter a combinação desejada.
Cores e Realce
Você pode adicionar cores à interface pressionando a tecla z
.
Geralmente, não se espera ver cores e gráficos ASCII em um comando como top
, mas eles estão lá!
A tecla y
realça as tarefas em execução na lista de processos. x
realça a coluna que está sendo usada para ordenar a lista de processos. Use b
para alternar entre texto em negrito e realce inverso.
Ordenando por Colunas
Por padrão, a lista de processos é ordenada pela coluna %CPU
. Você pode alterar a coluna de ordenação usando as seguintes teclas:
P
: Coluna %CPU
.
M
: Coluna %MEM
.
N
: Coluna PID
.
T
: Coluna TIME+
.
Na imagem abaixo, a lista de processos está ordenada pela coluna PID
.
Exibindo a Linha de Comando Completa
A tecla c
alterna a exibição da coluna COMANDO
entre o nome do processo e a linha de comando completa.
Para ver uma “árvore” de processos, mostrando quais processos iniciaram outros, pressione V
.
Visualizando Processos de um Único Usuário
Use a tecla u
para ver os processos de um único usuário. Será solicitado que você digite o nome do usuário ou o
UID.
Digite o nome do usuário que você deseja monitorar e pressione “Enter”. Na imagem, digitamos “dave”. Agora, a lista de processos mostra apenas os processos pertencentes a “dave”.
Exibindo Apenas as Tarefas Ativas
Pressione I
para visualizar apenas as tarefas ativas.
As tarefas que não usaram CPU desde a última atualização não serão mostradas.
Limitando o Número de Processos Exibidos
Use a tecla n
para limitar a exibição a um determinado número de linhas, independentemente de as tarefas estarem ativas ou não. Você será solicitado a informar o número de processos a serem exibidos.
Na imagem, digitamos 10, então apenas 10 processos são mostrados na lista.
Ajustando a Prioridade de um Processo (“Renice”)
Use a tecla r
para alterar o valor “nice” (prioridade) de um processo. Será solicitado que você digite o PID
do processo. Você pode pressionar “Enter” para usar o PID
da tarefa no topo da lista. Na imagem, digitamos 7800, que é o PID
de uma instância do Firefox.
Após pressionar “Enter”, você será solicitado a digitar o novo valor “nice” para aplicar ao processo. Digitamos 15 e pressionamos “Enter”.
O novo valor “nice” é aplicado ao processo imediatamente.
Encerrando um Processo (“Matando”)
Pressione k
para encerrar um processo. Será solicitado que você digite o PID
do processo que deseja encerrar. Na verdade, você pode enviar qualquer sinal para o processo. Vamos encerrar o processo 7879, que parou de responder.
Você pode especificar o sinal que deseja enviar, por nome ou número. Se você simplesmente pressionar “Enter”, o top
enviará o sinal SIGTERM
(encerrar).
Assim que você pressionar “Enter”, o sinal será enviado ao processo.
Personalizando a Exibição
Você também pode personalizar as cores e as colunas que são exibidas. Vamos alterar a cor usada para os prompts, que por padrão é vermelho.
Pressione Z
(maiúsculo) para acessar a página de configurações de cores. A parte superior da tela mostra as cores usadas pelos diferentes elementos da interface. Para indicar qual elemento você deseja alterar, use as seguintes teclas (diferenciando maiúsculas e minúsculas):
S
: Área de dados de resumo.
M
: Mensagens e avisos.
H
: Títulos de coluna.
T
: Informações das tarefas na lista de processos.
Na imagem, pressionamos M
para alterar as cores dos prompts.
Para escolher uma cor, pressione um dos seguintes números:
0
: Preto.
1
: Vermelho.
2
: Verde.
3
: Amarelo.
4
: Azul.
5
: Magenta.
6
: Ciano.
7
: Branco.
Pressionamos 6
para usar a cor ciano.
Pressione “Enter” para salvar as configurações. Os prompts de entrada agora serão exibidos na cor selecionada.
Podemos também alterar as colunas exibidas na tela de gerenciamento de campos. Pressione F
para acessar essa tela.
Os campos exibidos têm um asterisco ao lado e são destacados em negrito. Use as setas para cima e para baixo para mover o destaque pela lista de campos.
Se você mover o destaque para fora da parte inferior de uma coluna, ele aparecerá no topo da coluna seguinte (a menos que você esteja na última coluna). Se movê-lo para fora do topo, ele aparecerá na parte inferior da coluna anterior (a menos que você esteja na primeira coluna).
Na imagem, movemos o destaque para o campo COMANDO
e pressionamos d
para remover o asterisco.
Em seguida, movemos o destaque para o campo UID
e pressionamos d
para adicionar um asterisco a ele. Isso significa que a coluna COMMAND
não será exibida, mas a coluna UID
será.
Com o destaque no campo UID
, pressione s
para ordenar a lista de processos por essa coluna.
Pressione “Enter” para salvar suas configurações e depois “q” para sair da tela de gerenciamento de campos.
A coluna UID
agora substituiu a coluna COMANDO
e a lista de processos está ordenada por ela.
Modo de Exibição Alternativo
Essa opção funciona melhor em tela cheia. Pressione A
para dividir a lista de processos em quatro áreas e use a tecla a
(minúscula) para alternar entre elas.
Cada área tem um conjunto diferente de colunas, mas você pode personalizar cada uma delas através da tela de gerenciamento de campos. Isso permite criar uma tela personalizada em tela cheia, mostrando diferentes informações em cada área, e com a capacidade de ordenar cada área por uma coluna diferente.
Outras Teclas Úteis
Aqui estão algumas outras teclas que você pode achar úteis para começar:
W
: Salva suas configurações e personalizações, para que elas sejam mantidas quando você iniciar o top
novamente.
d
: Define uma nova taxa de atualização da tela.
Espaço
: Força o top
a atualizar a tela imediatamente.
Top Banana Como vimos, o top
tem um repertório grande de opções. Outras ferramentas,
como o htop
,
foram inspiradas nele, mas cada uma tem sua própria abordagem.
No entanto, o top
está instalado em todos os lugares. Quando você vai a uma empresa para verificar redes ou servidores, muitas vezes é informado de que nada pode ser alterado nos servidores em funcionamento. O cliente define as regras, então você precisa usar o que já está instalado.
Mesmo que você prefira outra ferramenta de monitoramento, você deve conhecer o top
. Mais cedo ou mais tarde, você provavelmente estará em uma situação em que ele será a única ferramenta disponível.