Monitoramento de carga no Linux com atop

Por que usar o atop
Atop oferece uma visão por processo do uso de recursos do sistema. Ele é especialmente útil quando você precisa correlacionar um pico de uso com processos específicos ou entender se o problema é CPU, I/O, memória ou rede. Termos chave: process accounting — registro por processo dos recursos; intervalo — tempo entre amostragens (padrão 10 s).
Principais intenções deste artigo
- Como instalar e executar o atop no Linux
- Como interpretar a saída (nível sistema e por processo)
- Comandos interativos importantes
- Passos práticos e listas de verificação para investigação
Instalar o atop
Usuários de sistemas baseados em Debian (Ubuntu, Linux Mint) podem instalar com o comando a seguir:
sudo apt-get install atop
Em outras distribuições, use o gerenciador de pacotes correspondente (por exemplo, yum/dnf no Red Hat/CentOS/Fedora). Você também pode baixar a ferramenta do site oficial do projeto.
Importante: algumas informações por processo (como I/O em disco e tráfego de rede) só aparecem se a contabilidade por processo do kernel estiver ativa ou se patches específicos do kernel (por exemplo, cnt) estiverem aplicados.
Execução básica
Execute o atop com privilégios elevados para ver todos os dados:
sudo atop
A saída é dividida em duas partes principais: informações a nível de sistema (linhas de resumo) e informações a nível de processo (processos que mudaram uso no último intervalo — padrão 10 segundos).
Tela de exemplo mostrando visão geral do sistema e processos com ocupação destacada.
Linhas de resumo do sistema (o que cada linha significa)
Cada linha de resumo descreve um subsistema. A seguir estão as linhas mais comuns e como interpretá-las.
PRC — processo geral
Contém: porcentagem do tempo de CPU em modo kernel (‘sys’) e modo usuário (‘user’), número total de processos (‘#proc’), threads em execução (‘#trun’), threads em espera (‘#tslpi’, ‘#tslpu’), processos zumbi (‘#zombie’), chamadas clone (‘clones’) e processos que terminaram no intervalo (‘#exit’). Se a contabilidade de processos não estiver ativa, ‘#exit’ pode aparecer como ‘?’.
CPU — utilização de CPU
Mostra percentuais de tempo em kernel (‘sys’), em usuário (‘user’), em handling de interrupções (‘irq’ e softirq), tempo ocioso sem espera por I/O (‘idle’) e tempo ocioso com pelo menos um processo esperando por disco (‘wait’). Em sistemas multiprocessador, há uma linha adicional por CPU física/virtual.
CPL — carga da fila de execução
Indica quantos threads estão prontos para rodar (runqueue) ou aguardando I/O, número de trocas de contexto (‘csw’), interrupções atendidas (‘intr’) e número de CPUs disponíveis.
MEM — memória física
Apresenta memória total (‘tot’), livre (‘free’), page cache (‘cache’), páginas sujas a gravar em disco (‘dirty’), buffers de sistema de arquivos (‘buff’) e uso do kernel allocator (‘slab’).
SWP — swap
Mostra tamanho total da swap em disco (‘tot’), livre (‘free’), memória virtual comprometida (‘vmcom’) e limite máximo comprometido (‘vmlim’).
DSK — disco
Exibe percentual de tempo ocupado (‘busy’), número de leituras (‘read’) e escritas (‘write’), KiB por leitura (‘KiB/r’), KiB por escrita (‘KiB/w’), MiB/s de leitura (‘MBr/s’) e escrita (‘MBw/s’), profundidade média da fila (‘avq’) e tempo médio por operação (‘avio’).
NET — rede (TCP/IP)
Apresenta linhas separadas para camada de transporte (TCP/UDP), camada IP e por interface ativa, com números de pacotes e throughput.
Importante: atop usa cores (por exemplo, vermelho) para indicar condições críticas. Quando um recurso excede um limiar crítico, a linha inteira fica em vermelho.
Nível de processo
Abaixo das linhas do sistema, atop lista os processos que tiveram alteração de utilização no intervalo anterior. Isso facilita apontar exatamente qual PID ou comando está gerando CPU alta, I/O pesado ou consumo de memória.
Exemplo mostrando a coluna com a linha de comando do processo.
Comandos interativos úteis
No modo interativo, pressione as teclas abaixo para filtrar ou mudar a exibição:
- m — exibe informações detalhadas de memória
- d — exibe estatísticas de disco (I/O)
- n — exibe estatísticas de rede
- v — mostra características adicionais dos processos
- c — mostra a linha de comando completa do processo
- t — alterna entre ordenações por CPU, memória e I/O
- u
— filtra processos por usuário - q — sair
Use essas teclas para focar rapidamente na dimensão que interessa durante uma investigação.
Metodologia mínima para investigar picos de carga (mini-methodology)
- Capture contexto: hora do evento, duração e se foi um pico pontual ou sustentado.
- Abra atop e observe a linha do sistema (PRC, CPU, CPL, MEM, DSK, NET).
- Identifique qual subsistema está em vermelho ou com aumento consistente.
- Pressione a tecla correspondente (m/d/n) para detalhar a dimensão afetada.
- Na lista de processos, anote PID, %CPU, %MEM, B/s de I/O e a linha de comando.
- Se necessário, grave logs com atop em modo de gravação para análise posterior (atop -w).
Nota: o intervalo padrão é 10 s. Para gravação contínua com intervalos menores, ajuste conforme impacto de overhead aceitável.
Formas de coletar dados históricos
- atop -w arquivo.atop 60 100 — grava amostras a cada 60 s por 100 vezes
- atop -r arquivo.atop — lê e reproduz um arquivo gravado
Gravar permite correlacionar eventos com logs de aplicativo e com métricas de monitoramento externas.
Checklist por função (role-based checklists)
Administrador de sistemas / Operações
- Verifique linhas PRC, CPU e CPL por sobrecarga.
- Se DSK estiver alta, execute iostat e examine avq/avio.
- Se MEM estiver baixa, cheque swap e processos com maior RSS.
- Grave uma sessão com atop -w para auditoria.
Desenvolvedor / Engenheiro de Aplicação
- Identifique PIDs responsáveis por pico de CPU ou I/O.
- Reproduza carga localmente com carga controlada (stress/nginx/ab).
- Revise código que gera muitas threads ou operações síncronas bloqueantes.
SRE / Engenheiro de Confiabilidade
- Correlacione amostras atop com SLO/alertas.
- Defina playbooks: quando CPU>80% por mais que X minutos, executar escala horizontal ou reiniciar serviço com cuidado.
- Use gravações atop para postmortem.
Heurísticas de interpretação (mental models)
- CPU alto + CPU runqueue alta (CPL) → falta de CPU disponível; considere escalonamento vertical/horizontal.
- Alta wait em CPU (i.e., tempo de espera por I/O) + DSK ocupado → gargalo de disco; verificar throughput e latências.
- Memória praticamente esgotada + swap em uso → degradação de performance; priorizar liberar cache, ajustar limites ou aumentar RAM.
- Rede saturada em NET → verificar interfaces e taxas; correlacione com número de conexões no kernel.
Quando o atop pode falhar ou ser limitado (cenários/contraexemplos)
- Se a contabilidade por processo não estiver ativa, algumas métricas por processo (I/O, rede) podem não aparecer.
- Em kernels sem patches de contabilidade (cnt), a visibilidade por processo sobre I/O e rede fica reduzida.
- Em sistemas com altíssimo número de processos com ciclos curtos, amostras muito espaçadas podem perder picos curtos; reduza o intervalo para capturar eventos curtos, balanceando overhead.
Snippets e exemplos rápidos
Gravar 24 horas de amostras a cada 60 segundos:
sudo atop -w /var/log/atop/atop-24h.log 60 1440
Ler arquivo gravado e filtrar por um intervalo específico (exibir a partir do minuto X). Exemplos de uso de atop -r têm muitas opções; consulte o man page para filtros avançados.
Fluxo de decisão (Mermaid)
flowchart TD
A[Pico de carga detectado] --> B{Qual recurso está crítico?}
B -->|CPU| C[Ver lista de processos por CPU]
B -->|I/O disco| D[Pressionar d e checar PID que mais grava]
B -->|Memória| E[Ver swap, rss e processos com maior MEM]
B -->|Rede| F[Pressionar n e verificar interfaces]
C --> G{Processo conhecido?}
G -->|Sim| H[Avaliar reinício ou escala]
G -->|Não| I[Investigar linha de comando e versões]
D --> J{Latência alta?}
J -->|Sim| K[Considerar IO scheduler/raid/ssd]
J -->|Não| L[Ver throughput e threads]
Testes e critérios de aceitação básicos
- Able to identify top 3 consumers of CPU within one interval when CPU>80%.
- Able to capture disk-bound processes and average avio > acceptable threshold for at least 3 consecutive samples.
- Successful recording and replay of atop sessions using atop -w and atop -r.
Observação: adapte critérios numéricos conforme a política da sua organização; aqui são descritos como critérios funcionais.
Maturidade e próximos passos (níveis)
- Nível 1 — Uso manual do atop para investigação ad-hoc.
- Nível 2 — Gravação periódica de atop para correlação com logs e automação mínima (scripts para extração).
- Nível 3 — Integração das gravações com plataforma de APM/observabilidade, alertas baseados em SLI/SLO e playbooks automatizados.
Segurança e privacidade
Executar atop como root revela linhas de comando completas de processos, o que pode expor argumentos sensíveis. Evite gravar logs com informações sensíveis em ambientes com requisitos de privacidade rígidos ou filtre antes de arquivar.
Glossário rápido (1-linha cada)
- Contabilidade de processo: mecanismo do kernel que rastreia uso de recursos por PID.
- Runqueue: fila de threads prontas para executar na CPU.
- avio: latência média por operação de disco reportada pelo atop.
Recursos e referências
Consulte o man page do atop para opções avançadas e parâmetros de gravação: man atop
Conclusão
Atop é uma ferramenta poderosa para monitorar carga em sistemas Linux. Ela facilita a identificação de processos causadores de problemas e permite gravação para análises posteriores. Para investigações rápidas, use os comandos interativos (m, d, n, c). Para análises históricas, grave sessões com atop -w e reproduza com atop -r.
Resumo das próximas ações recomendadas:
- Instale atop no ambiente de teste e treine a equipe com cenários simulados.
- Configure gravações regulares se você precisar de histórico para postmortem.
- Documente playbooks de resposta para CPU alta, I/O e falta de memória.
Nota: consulte o man page do comando para detalhes adicionais sobre opções e saída.
Materiais semelhantes

Ronggolawe: como proteger seu site

Desligar Nest automaticamente quando esfria

Desativar Wi‑Fi automaticamente ao conectar Ethernet

Foto de perfil personalizada no Netflix
