O que é o htop e o top

Se você já administrou um servidor Linux ou rodou uma aplicação em produção, com certeza já abriu o top ou o htop pelo menos uma vez. São ferramentas de monitoramento em tempo real que mostram o que esta acontecendo com os processos, CPU e memoria do sistema.

O top vem instalado por padrão em praticamente todas as distribuições Linux. O htop e uma versão mais moderna e visualmente amigável, com suporte a cores, scroll e interação com o mouse. Ambos mostram as mesmas informações fundamentais, mas o htop e muito mais fácil de usar no dia a dia.

O problema e que a quantidade de números e abreviações pode assustar quem não esta acostumado. Coisas como "load average", "zombie", "wa", "ni" e as barras de CPU coloridas geram duvidas até em devs experientes. Neste guia vamos destrinchar cada um desses indicadores.

Como funciona o monitoramento em tempo real

O top e o htop leem periodicamente os arquivos do sistema de arquivos virtual /proc do Linux. Esse diretório não existe no disco: ele é criado pelo kernel em memoria e expõe dados internos do sistema em formato de texto. Cada processo tem sua pasta dentro de /proc com informações de CPU, memoria, estado e muito mais.

Por padrão, o htop atualiza as informações a cada 2 segundos. Você pode mudar esse intervalo com a tecla F2 (Setup) ou passando a opcao -d na linha de comando. Quanto menor o intervalo, mais preciso o snapshot, mas também mais overhead de leitura.

O top funciona de forma similar, mas sua interface e menos intuitiva. Para sair, pressione q. Para ordenar por CPU, pressione P. Para ordenar por memoria, pressione M. No htop, você pode usar as setas do teclado e o mouse para navegar.

💡
Dica

Para instalar o htop no Ubuntu/Debian: sudo apt install htop. No CentOS/RHEL: sudo yum install htop. Vale muito a pena ter ele em todos os servidores.

Principais recursos: o que você ve na tela

A tela do htop e dividida em duas grandes áreas: o cabeçalho, com resumo do sistema, e a lista de processos logo abaixo. Entender cada parte e fundamental.

No cabeçalho você encontra as barras de CPU (uma por núcleo), as barras de memoria e swap, o load average, o tempo de atividade do sistema (uptime), o número total de tarefas e o número de threads rodando. Cada um desses elementos conta uma historia diferente sobre a saúde da máquina.

Na lista de processos, as colunas mais importantes são: PID (identificador único do processo), USER (usuário dono), PRI/NI (prioridade e nice), VIRT/RES/SHR (memoria virtual, residente e compartilhada), S (estado do processo), %CPU e %MEM (percentual de uso), TIME+ (tempo de CPU acumulado) e COMMAND (nome do processo).

Como começar: instalação e primeiros passos

Se você quer explorar o htop agora mesmo, basta abrir um terminal em qualquer máquina Linux e digitar o comando. Caso não esteja instalado, a instalação e rápida:

# Ubuntu / Debian
sudo apt update && sudo apt install htop

# CentOS / RHEL / Fedora
sudo yum install htop
# ou
sudo dnf install htop

# Arch Linux
sudo pacman -S htop

# Para iniciar
htop

Com o htop aberto, use F6 para mudar a coluna de ordenação. F4 serve para filtrar processos por nome. F9 mata o processo selecionado. F10 ou q fecha o programa. Você também pode pressionar t para alternar a visão em árvore (tree view), que mostra a hierarquia pai-filho dos processos.

Se quiser monitorar um processo específico pelo PID, use:

htop -p 1234,5678
# monitora apenas os PIDs 1234 e 5678

Exemplo prático: interpretando a tela do htop

Imagine que você entrou no htop e ve a CPU 1 com a barra quase no topo, vermelho na maior parte. Isso significa que aquele núcleo esta quase saturado. Se você ordenar por %CPU (tecla P), vai ver qual processo e o responsável. Encontrou um processo "java" com 90%? E hora de investigar o heap e os logs da aplicação.

Agora repare nas cores das barras de CPU. O htop usa cores diferentes para representar diferentes tipos de uso:

  • Verde: processos de usuário (user space)
  • Azul: processos de baixa prioridade (nice)
  • Vermelho: processos do kernel (kernel/system)
  • Amarelo/laranja: tempo de espera de I/O (iowait)

Se você ve muita cor vermelha, o kernel esta trabalhando pesado. Muito amarelo indica gargalo de disco ou rede. Isso já da a direção do problema sem precisar olhar nada mais.

⚠️
Atenção

A barra de swap cheia (cor laranja/vermelha no htop) e sinal de alerta serio. Quando o sistema usa swap, ele esta lendo e escrevendo no disco para compensar falta de RAM, o que degrada muito a performance.

Comparação: top vs htop vs outros monitores

O top e o veterano disponível em qualquer sistema Unix. E mais rápido de abrir e consome menos recursos, mas a interface e crua e a interação e limitada. Bom para scripts ou quando o htop não esta instalado.

O htop e o padrão ouro para uso interativo. Suporta mouse, permite matar processos com facilidade, mostra árvore de processos e tem visual mais claro. Recomendado para o dia a dia.

O glances e outra alternativa moderna que mostra ainda mais métricas (rede, disco, sensores de temperatura) em uma única tela. Bom para monitoramento abrangente. O atop salva histórico por hora e e perfeito para investigar incidentes que já passaram.

Para produção em escala, ferramentas como Grafana + Prometheus ou Datadog complementam o htop com histórico longo e alertas automáticos. O htop fica para a análise em tempo real e on-demand no servidor.

Pontos positivos e limitações

O htop e excelente para diagnóstico rápido e interativo. Ele mostra tudo que você precisa para entender a saúde do sistema em segundos. A árvore de processos e especialmente útil para identificar quem spawnou determinado processo filho.

Porém, o htop tem limitações importantes. Ele não tem histórico: você só ve o momento atual. Se um pico de CPU aconteceu ha 10 minutos, o htop não vai mostrar. Para isso, ferramentas como sar (do pacote sysstat) ou soluções de APM são necessárias.

Outro ponto: o htop não mostra métricas de rede por processo. Para isso, use o nethogs (rede por processo) ou o iotop (I/O de disco por processo).

🔴
Cuidado

Nunca use o htop para matar processos sem ter certeza do que esta fazendo. Matar o processo errado em produção pode derrubar serviços críticos. Sempre verifique o COMMAND e o USER antes de pressionar F9.

Casos de uso reais

Dev investigando lentidão na API: Entra no servidor via SSH, abre o htop, ordena por %CPU. Descobre que um processo Python esta consumindo 200% de CPU (dois núcleos). Identifica pelo PID e verifica os logs da aplicação. Era um loop infinito causado por um bug de borda em produção.

DevOps monitorando deploy: Durante um deploy de nova versão, mantem o htop aberto para ver o consumo de memoria subindo. Se a nova versão vazar memoria, vai aparecer no RES crescendo continuamente. Ação imediata antes que cause OOM killer.

SysAdmin verificando carga após backup: Servidor esta lento de madruga. Abre o htop e ve load average de 8.5 em uma máquina de 4 núcleos. Ordena por %CPU e encontra o job de backup rsync consumindo todos os núcleos. Ajusta a prioridade com nice para liberar CPU para outros serviços.

Desenvolvedor aprendendo Linux: Usa o htop para entender como processos se relacionam via tree view. Ve que o nginx spawna workers filhos. Acompanha como o garbage collector da JVM impacta o %CPU em rafagas periódicas.

Dicas e boas práticas

💡
Dica

Use F2 > Display Options > Tree view para deixar a visão em árvore como padrão. Fica muito mais fácil entender quem e pai de quem entre os processos.

🚀
Pro tip

Para monitorar o load average em contexto: compare com o número de núcleos da máquina. Load average de 4.0 em uma máquina de 4 núcleos significa saturação total. Em uma de 8 núcleos, ainda tem folga. Veja o número de núcleos com nproc.

💡
Dica

O campo RES (Resident Set Size) e o que realmente importa para memoria RAM. O campo VIRT inclui memoria mapeada que pode nunca ser usada de fato. Foque no RES para avaliar consumo real.

⚠️
Atenção

Processos com estado Z (zombie) já terminaram mas o processo pai não coletou o código de saída. Alguns zombies são normais, mas muitos indicam bug no processo pai que não faz wait() corretamente.

Vale a pena dominar o htop?

Definitivamente sim. O htop e uma das ferramentas mais utilizadas por quem trabalha com servidores Linux, seja dev, DevOps ou SysAdmin. Saber interpretar o que você ve ali é diferencial real no dia a dia: você para de chutar quando um servidor fica lento e começa a diagnosticar com dados concretos.

O próximo passo e abrir o htop em um servidor real agora. Explore o F2 para customizar colunas, ative a tree view e observe como os processos se organizam. Com 30 minutos de exploração prática, você vai fixar o conhecimento muito melhor do que lendo qualquer documentação.

Se quiser ir mais fundo, leia o artigo original de Peteris Rocks sobre htop (linkado abaixo) e a página de manual com man htop. O kernel /proc também tem documentação oficial detalhando cada arquivo disponível.