0 XP

DEVOPSQUEST

Minha Trilha
Módulo 1 · Linux e Sistemas

Disco e memória: quando o servidor fica lento ou cheio

Intermediário 35 min+25 XPdfdufreetop

Objetivos desta aula

  • Diagnosticar disco cheio com df e du
  • Encontrar os maiores arquivos e pastas
  • Interpretar uso de memória e swap
  • Identificar processos que consomem CPU e RAM
  • Resolver o caso clássico de log que enche o disco

Dois dos incidentes mais comuns em produção são disco cheio e falta de memória. Quando o disco enche, bancos param de gravar e aplicações caem; quando a memória acaba, o kernel mata processos.

Comece pelo panorama: df -h mostra cada partição, quanto está usado e quanto sobra, em formato legível (-h = human). Acima de 90%, acenda o alerta.

Depois descubra quem ocupa espaço: du -sh /var/* | sort -h soma o tamanho de cada pasta e ordena. Vá descendo pelas maiores até achar o culpado — quase sempre logs, imagens Docker antigas ou backups esquecidos.

Caso clássico: você apaga um log gigante, mas o espaço não volta. Motivo: o processo ainda tem o arquivo aberto. Veja com lsof +L1 e reinicie o serviço, ou esvazie o arquivo com truncate -s 0 arquivo.log em vez de apagá-lo.

A solução definitiva é o logrotate, que gira, comprime e apaga logs antigos automaticamente. No Docker, limpe com docker system prune (com cuidado) e configure limites de log.

Para memória use free -h. A coluna importante é available (quanto pode ser usado de fato). O Linux usa RAM livre como cache, então “used” alto nem sempre é problema.

Swap é memória extra no disco — muito mais lenta. Swap muito usado indica falta de RAM. Para achar o vilão, top ou htop ordenados por memória (M) ou CPU (P).

Se o kernel mata processos por falta de memória, aparece no log: journalctl -k | grep -i oom. Em Kubernetes, isso vira o famoso status OOMKilled.

Na prática

Investigando disco cheio

bash

df -h                               # visão geral das partições
sudo du -sh /var/* 2>/dev/null | sort -h | tail
sudo find / -xdev -type f -size +500M -exec ls -lh {} \; 2>/dev/null
sudo lsof +L1                       # arquivos apagados ainda abertos
sudo truncate -s 0 /var/log/app.log # esvazia sem apagar

Memória e processos

bash

free -h                             # olhe a coluna 'available'
ps aux --sort=-%mem | head -5       # top 5 por memória
journalctl -k | grep -i "out of memory"

Por que isso importa

Disco e memória causam incidentes recorrentes; saber investigar rápido evita horas de indisponibilidade.

Erro comum

Apagar arquivos aleatórios de /var ou /usr para liberar espaço, quebrando o sistema.

Dica de produção

Crie alertas em 80% de disco e configure logrotate em todo servidor desde o primeiro dia.

Pergunta de entrevista

Você apagou um log de 20 GB, mas o df continua mostrando o disco cheio. Por quê e como resolver?

Glossário

df
Mostra o uso de espaço por partição.
du
Mostra o tamanho de pastas e arquivos.
Swap
Área do disco usada como memória extra (lenta).
OOM killer
Mecanismo do kernel que mata processos sem memória.
logrotate
Ferramenta que gira e limpa logs automaticamente.

Conexão com o CloudShop

O Boss do reino Linux simula um servidor CloudShop com disco 100% cheio por logs.

Quiz da aula

  1. 1. Qual comando mostra o uso por partição?

  2. 2. Na saída do `free`, qual coluna indica a memória realmente disponível?

  3. 3. Por que o espaço não volta após apagar um log aberto?

Minhas anotações

Salvo automaticamente neste navegador.

AnteriorPróxima