O maior portal de MU Online do Brasil — desde 2003
Tutorial Intermediário Infra

Como monitorar o espaço em disco do servidor de MU Online e evitar quedas por disco cheio

Configure alertas automáticos de espaço em disco no servidor de MU Online, identifique os maiores consumidores (logs, backups, MySQL) e monte uma rotina de limpeza que evita a queda do MySQL por disco cheio.

BR Bruno · Atualizado em 31 jul 2026 · ⏱ 13 min de leitura
Resposta rápida

Disco cheio é uma das causas mais silenciosas e mais destrutivas de queda em servidores privados de MU Online: diferente de um pico de CPU que os jogadores sentem como lag, o disco enche aos poucos, sem sintoma visível, até o momento em que o MySQL simplesmente para de aceitar escritas — e nesse ins

Disco cheio é uma das causas mais silenciosas e mais destrutivas de queda em servidores privados de MU Online: diferente de um pico de CPU que os jogadores sentem como lag, o disco enche aos poucos, sem sintoma visível, até o momento em que o MySQL simplesmente para de aceitar escritas — e nesse instante você já está lidando com dados de personagem potencialmente corrompidos, não apenas com um servidor fora do ar. Este tutorial mostra como identificar os maiores consumidores de espaço em um servidor de MU (logs, backups, tabelas de banco), configurar alertas automáticos antes que o disco chegue ao limite, e montar uma rotina de limpeza e arquivamento que mantém o servidor saudável sem perder histórico importante para investigações de ban e disputas entre jogadores.

Por que disco cheio é mais perigoso que CPU alta

Um pico de CPU degrada a experiência (lag), mas o servidor continua funcionando e se recupera sozinho quando o pico passa. Disco cheio é binário: em um momento o MySQL escreve normalmente, no seguinte ele recusa qualquer escrita, porque não há espaço físico para o arquivo de log de transações (ib_logfile) ou para o próprio tablespace crescer. Isso pode travar o GameServer no meio de um save de personagem, com risco real de corrupção de dados — um problema muito mais grave que qualquer lag.

Principais consumidores de espaço em um servidor de MU Online

ConsumidorPor que cresceTaxa de crescimento típica
Logs do GameServer/ConnectServerGravam cada conexão, erro e ação relevantePode chegar a GBs/semana em servidor populoso
Backups do MySQLDump completo gerado periodicamente sem limpezaCresce linearmente com o tamanho do banco
Tabelas de log de PK/eventos no MySQLCada morte, drop e evento gera uma linhaPode passar de milhões de linhas em meses
Binlog do MySQLLog de replicação/recuperação, se habilitadoCresce rápido em servidores com muita escrita
Arquivos de atualização do launcherVersões antigas de patch não removidasCresce a cada atualização de cliente

Passo 1 — Medir o uso atual de disco

Antes de configurar qualquer alerta, entenda onde o espaço está sendo consumido hoje. No Linux:

df -h
du -sh /var/lib/mysql /var/log /caminho/do/servidor/Logs /backup

No Windows, ferramentas como WinDirStat ou o próprio Get-ChildItem recursivo no PowerShell ajudam a mapear os maiores diretórios antes de decidir o que limpar ou rotacionar.

Passo 2 — Configurar rotação de logs

Em Linux, o logrotate compacta e arquiva logs automaticamente, evitando que um único arquivo cresça sem limite:

# /etc/logrotate.d/mu-gameserver
/caminho/do/servidor/Logs/*.log {
    daily
    rotate 30
    compress
    missingok
    notifempty
}

Isso mantém 30 dias de histórico compactado e descarta o que passar disso — suficiente para a maioria das investigações de disputa entre jogadores, sem deixar o disco crescer indefinidamente.

Passo 3 — Automatizar a limpeza de backups antigos

Backups do MySQL precisam de uma política clara de retenção. Um script simples rodando via cron/tarefa agendada resolve:

#!/bin/bash
# Mantém apenas os últimos 14 backups diários
find /backup/mysql -name "*.sql.gz" -mtime +14 -delete

Nunca apague backups manualmente sem confirmar que existe pelo menos uma cópia recente íntegra — sempre valide o backup mais novo antes de rodar a limpeza dos antigos.

Passo 4 — Arquivar tabelas de log de eventos/PK que crescem sem limite

Tabelas como logs de PK, logs de drop de itens raros e logs de chat podem crescer para milhões de linhas ao longo de meses. Em vez de deixá-las crescer indefinidamente dentro do banco ativo, arquive periodicamente os registros antigos em uma tabela separada ou em um dump externo:

-- Exemplo: mover registros com mais de 90 dias para uma tabela de arquivo
INSERT INTO LOG_PK_ARQUIVO SELECT * FROM LOG_PK WHERE Data < NOW() - INTERVAL 90 DAY;
DELETE FROM LOG_PK WHERE Data < NOW() - INTERVAL 90 DAY;
OPTIMIZE TABLE LOG_PK;

Passo 5 — Configurar alertas automáticos de espaço

Um alerta simples com cron e um webhook do Discord já evita a maioria das surpresas, mesmo sem um stack completo de monitoramento:

#!/bin/bash
USO=$(df / | tail -1 | awk '{print $5}' | sed 's/%//')
if [ "$USO" -gt 85 ]; then
  curl -H "Content-Type: application/json" -d "{\"content\":\"⚠️ Disco em ${USO}% de uso no servidor!\"}" https://discord.com/api/webhooks/SEU_WEBHOOK
fi

Agende esse script para rodar a cada 15-30 minutos via cron (Linux) ou Agendador de Tarefas (Windows).

Passo 6 — Definir limiares de alerta em camadas

Um único alerta em cima da hora não dá tempo de reação. Configure limiares progressivos, cada um com uma urgência diferente:

Limiar de usoAção recomendada
70%Aviso informativo, sem ação imediata
85%Alerta ativo no Discord da equipe
92%Alerta crítico + início de limpeza automática de logs antigos
97%Alerta de emergência + intervenção manual imediata

Passo 7 — Separar discos por função quando possível

Se o orçamento permitir, mantenha o MySQL em um disco (ou partição) separado dos logs e backups. Assim, mesmo que os logs cresçam descontroladamente, o MySQL continua tendo espaço para escrever — evitando o cenário mais grave de corrupção de dados de personagem.

Passo 8 — Testar a recuperação de espaço em um cenário simulado

Antes de confiar na rotina, simule um cenário de disco quase cheio em um ambiente de teste e confirme que a rotação de logs, a limpeza de backups e o arquivamento de tabelas realmente liberam espaço suficiente e a tempo. Um script de limpeza que nunca foi testado é tão arriscado quanto não ter nenhum.

Erros comuns e soluções

SintomaCausa provávelSolução
MySQL para de aceitar escritasDisco atingiu 100% de usoLiberar espaço imediatamente e reiniciar o serviço com cuidado
Logs crescendo sem limitelogrotate não configurado ou mal aplicadoRevisar /etc/logrotate.d/ e testar com logrotate -d
Backups antigos nunca removidosFalta de script de retenção automatizadaImplementar limpeza via cron com find -mtime
Tabelas de log gigantes deixando queries lentasAusência de arquivamento periódicoMover registros antigos para tabela de arquivo
Alerta de disco nunca disparaScript de verificação não agendado corretamenteConfirmar cron/Agendador de Tarefas está ativo

Checklist de monitoramento de disco

  • Uso atual de disco mapeado por diretório (logs, backups, MySQL).
  • Rotação de logs configurada com retenção definida (ex.: 30 dias).
  • Script de limpeza automática de backups antigos implementado.
  • Rotina de arquivamento de tabelas de log de crescimento rápido.
  • Alertas automáticos configurados em camadas (70/85/92/97%).
  • Discos de MySQL e logs/backups separados, se possível.
  • Recuperação de espaço testada em ambiente simulado.

Com o espaço em disco sob controle, o próximo passo é integrar esses alertas a um painel de monitoramento mais completo, cruzando CPU, memória e conexões de banco no mesmo lugar — veja o tutorial de criação de servidor de MU Online para revisar a base de infraestrutura antes de avançar para um stack de observabilidade mais robusto.

Perguntas frequentes

O que acontece quando o disco do servidor enche completamente?

O MySQL para de aceitar escritas e pode corromper tabelas em uso no momento, o GameServer trava ao tentar salvar dados de personagens, e logs param de ser gravados — o pior cenário possível para um servidor privado de MU Online, com risco real de perda de progresso dos jogadores.

Quais arquivos mais ocupam espaço em um servidor de MU Online com o tempo?

Os maiores consumidores costumam ser logs do GameServer/ConnectServer (que crescem indefinidamente se não houver rotação), backups do MySQL acumulados sem limpeza automática, e o próprio banco de dados quando tabelas de log de eventos/PK não são arquivadas periodicamente.

Com que frequência devo verificar o espaço em disco?

Com um alerta automatizado, a verificação é constante (a cada poucos minutos), o que é muito melhor que checagem manual. Sem automação, revise manualmente pelo menos uma vez por dia, e sempre antes de eventos que geram muito log (guerra de castelo, invasões).

Rotação de logs corrompe o histórico que eu preciso para investigar bans e disputas?

Não, se configurada corretamente. A rotação compacta e arquiva logs antigos (por exemplo, em .gz) em vez de apagá-los imediatamente — você mantém o histórico compactado por um período definido (30-90 dias) e só descarta depois disso.

Vale a pena separar o disco do banco de dados do disco de logs/backups?

Sim, sempre que o orçamento permitir. Separar evita que um backup gigante ou um log descontrolado deixe o MySQL sem espaço para escrever, que é o cenário mais perigoso de disco cheio em um servidor de MU Online.

BR
Editor de eventos, mapas e itens

Bruno é especialista em eventos, mapas, bosses e economia de itens do MU Online. Documenta cada detalhe com base em jogo real.

Continue lendo

Artigos relacionados