Marcio Cunha

Como usar o iotop para achar processos que travam o disco

Descubra como rastrear processos que saturam a controladora de armazenamento e afetam a latência do servidor Linux usando o comando iotop.

Marcio Cunha•6 min
Também disponível em:EnglishEspañol
Resumo
  • O iotop exibe o uso de disco em tempo real por processo de forma similar ao gerenciador de tarefas.
  • A coluna DISK WRITE indica a quantidade de dados que cada programa grava no armazenamento por segundo.
  • Identificar gargalhos de I/O evita que o travamento de um único aplicativo derrube todo o servidor.
  • A ferramenta exige permissões de superusuário para inspecionar as estatísticas do kernel do Linux.
  • Combinar o monitoramento de disco com a verificação de hardware previne falhas catastróficas.

Por que o seu servidor Linux fica lento de repente?

Quando a latência de um servidor dispara e as aplicações param de responder, a tentação imediata é culpar a falta de memória RAM ou o uso excessivo do processador. Na prática, muitas vezes o verdadeiro vilão é o subsistema de armazenamento. Discos magnéticos tradicionais e até unidades de estado sólido de alta velocidade sofrem quando múltiplos aplicativos exigem operações de leitura e gravação simultaneamente. Para entender o que está acontecendo embaixo do capô, administradores de sistemas precisam olhar além do básico e examinar o comportamento individual de cada programa.

Se você já tentou usar comandos tradicionais e percebeu que eles apenas mostram a média geral de uso da controladora sem apontar culpados, existe uma alternativa cirúrgica. Assim como explicamos quando mostramos como usar o htop para achar processos pesados no Linux, a linha de comando oferece utilitários específicos para cada recurso do sistema. Quando o problema envolve lentidão crônica no acesso a arquivos, o iotop é a ferramenta indispensável que revela exatamente qual programa está sufocando o seu disco rígido.

O que é o iotop e como ele funciona na prática

O iotop é um utilitário de linha de comando para sistemas operacionais Linux que monitora a atividade de E/S (entrada e saída de dados) em tempo real. Pense nele como o gerenciador de tarefas clássico do sistema, mas com foco exclusivo em quanto cada programa está lendo ou escrevendo no disco rígido ou SSD. Ele se conecta diretamente ao kernel, que é o núcleo do sistema operacional responsável por gerenciar o hardware, para extrair métricas detalhadas sobre o tráfego de dados que passa pelas controladoras de armazenamento.

Na prática, isso significa que ao executar a ferramenta você obtém uma tabela dinâmica atualizada segundo a segundo. Cada linha representa um processo em execução, exibindo o identificador numérico, o usuário proprietário, a taxa de leitura em quilobytes ou megabytes por segundo, a taxa de gravação e a porcentagem de tempo que aquele processo passou esperando o disco responder. Essa visibilidade granular é o que separa um palpite frustrante de um diagnóstico rápido e certeiro em ambientes de produção.

Como instalar e executar o iotop no seu servidor

Em muitas distribuições Linux modernas, o iotop não vem instalado por padrão, mas pode ser adicionado em poucos segundos através do gerenciador de pacotes do sistema. Como a ferramenta precisa de acesso profundo às entranhas do kernel para coletar as estatísticas de hardware, a sua execução exige privilégios administrativos. Além disso, vale lembrar que hardwares antigos ou sobrecarregados também podem apresentar lentidão por desgaste físico, tornando útil conferir também como diagnosticar I/O travado no Linux para descartar travamentos de barramento.

Para colocar a ferramenta em funcionamento no seu ambiente de servidores, execute os comandos abaixo no terminal de acordo com a sua distribuição:

# Em sistemas baseados no Debian ou Ubuntu sudo apt update && sudo apt install iotop  # Em sistemas baseados no Red Hat ou Fedora sudo dnf install iotop  # Executando a ferramenta com privilégios de superusuário sudo iotop

Interpretando as colunas e métricas na tela

Assim que a interface textual é carregada, você se depara com uma série de colunas que podem parecer confusas à primeira vista. A primeira coluna exibe o PID, que é o número de identificação único de cada processo. As colunas seguintes mostram o usuário que iniciou a tarefa, a prioridade de execução e, mais à direita, as taxas fundamentais de leitura e gravação em tempo real. A coluna de escrita é geralmente a mais vigiada, pois é comum que processos de log descontrolados ou bancos de dados mal configurados saturem a capacidade de escrita do armazenamento.

Outro indicador vital é a porcentagem de troca e espera de disco, frequentemente identificada como IO%. Quando essa métrica está muito alta para um determinado processo, significa que a CPU está ociosa, apenas aguardando o disco terminar de entregar ou salvar os dados solicitados. Isso cria um gargalo conhecido como espera de E/S, onde o servidor parece travado não porque o processador é fraco, mas porque o disco não consegue acompanhar o ritmo das solicitações.

Filtrando processos ativos e otimizando a análise

Em um servidor de grande porte com centenas de tarefas rodando simultaneamente, a tela do iotop pode ficar poluída com dezenas de linhas exibindo taxa zero de atividade. Para facilitar a leitura e focar no que realmente importa, o utilitário permite aplicar filtros inteligentes. Pressionar a tecla 'o' no teclado faz com que a interface exiba apenas os processos que estão efetivamente realizando operações de leitura ou gravação naquele exato momento, ocultando o restante da árvore de processos do sistema.

Outro recurso útil é o modo de acumulação de dados, ativado através de parâmetros na inicialização. Quando você executa a ferramenta com a opção de acumular, ela soma o volume total de dados transferidos por cada processo desde o momento em que o comando foi aberto, em vez de mostrar apenas a taxa instantânea. Isso ajuda a flagrar tarefas que escrevem dados de forma esporádica, mas que somam um volume massivo ao longo de várias horas de operação contínua.

Passo a passo para rastrear e encerrar um processo abusivo

Quando a análise revela um processo solitário consumindo toda a largura de banda da controladora de armazenamento e travando as demais aplicações, a intervenção precisa ser rápida e precisa. Seguir uma sequência lógica de verificação e ação evita que você derrube um serviço crítico por engano e garante a estabilidade do sistema operacional. Para aprofundar esses conceitos na prática em produção, confira também nossa análise técnica sobre Como testar indutores SMD abertos na placa com multímetro.

  1. Abra o terminal com acesso administrativo e inicie o monitoramento filtrando apenas as atividades reais:
    sudo iotop -o
  2. Observe a tabela por alguns segundos para identificar o número de identificação do processo problemático na coluna PID.
  3. Encerre a tarefa de forma segura ou forçada utilizando o comando de terminação acompanhado do número coletado:
    sudo kill -15 <PID>

Conclusão e boas práticas para evitar gargalos de armazenamento

O monitoramento proativo do subsistema de armazenamento é uma das habilidades mais valiosas para qualquer profissional de tecnologia que gerencia servidores em ambiente de produção. Saber utilizar utilitários especializados transforma a resolução de incidentes complexos em um processo metódico, eliminando a adivinhação quando a latência do sistema dispara. Integrar essa rotina de verificação com ferramentas de alerta e auditoria garante que problemas de saturação de disco sejam identificados e resolvidos antes de impactarem a experiência dos usuários finais.

Manter a saúde da infraestrutura exige atenção constante aos detalhes e o uso correto das ferramentas nativas do ecossistema. Ao dominar o rastreamento de processos com alto consumo de disco, você ganha autonomia para diagnosticar falhas de performance em minutos, mantendo os serviços rodando com máxima eficiência e estabilidade, independentemente da carga de trabalho exigida pelas aplicações.