OpenClaw Consumindo Muita Memória RAM
OpenClaw Consumindo Muita Memória RAM
O OpenClaw está usando muita memória e deixando seu sistema lento? Este guia mostra como diagnosticar e resolver o problema.
JavaScript heap out of memory
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed
Process killed (OOM)
Memory usage exceeded limit
Por Que Isso Acontece?
| Causa | Sintoma |
|---|---|
| Memory leak | Uso cresce sem parar |
| Cache sem limite | Muitos dados acumulados |
| Muitas conexões | Centenas de sessões abertas |
| Arquivos grandes | Pico ao processar mídia |
| Histórico extenso | Contexto de conversas muito longo |
Soluções
1. Monitorar Uso de Memória
# Ver uso de memória do processo
ps aux | grep clawdbot
# Monitorar em tempo real
top -p $(pgrep -f clawdbot)
# Usar htop para visualização melhor
htop -p $(pgrep -f clawdbot)
2. Aumentar Limite de Memória do Node
# Aumentar para 4GB
export NODE_OPTIONS="--max-old-space-size=4096"
# Ou ao iniciar
node --max-old-space-size=4096 app.js
# No script de inicialização
NODE_OPTIONS="--max-old-space-size=4096" clawdbot gateway start
3. Configurar Limites de Cache
# config.yaml
cache:
messages:
max_size: 1000
ttl: 3600 # 1 hora
sessions:
max_size: 100
media:
max_size: 50
max_file_size: 10mb
4. Limpar Cache Periodicamente
# Limpar cache manualmente
clawdbot cache clear
# Ou programar limpeza
clawdbot cache clear --older-than 24h
// Limpar cache no código
setInterval(() => {
cache.clear();
global.gc && global.gc(); // Forçar garbage collection
}, 3600000); // A cada hora
5. Usar Garbage Collection Manual
# Iniciar com GC exposto
node --expose-gc app.js
// Forçar GC quando necessário
if (global.gc) {
global.gc();
}
6. Limitar Histórico de Mensagens
# Limitar contexto de conversas
conversation:
max_history: 50 # Últimas 50 mensagens
max_tokens: 4000
cleanup_interval: 3600
7. Processar Mídia em Stream
// Em vez de carregar tudo na memória
// Use streams para arquivos grandes
const stream = fs.createReadStream(filePath);
stream.pipe(destination);
Diagnóstico
#!/bin/bash
echo "=== Diagnóstico de Memória ==="
echo -e "\n1. Uso atual:"
ps aux | grep clawdbot | awk '{print "PID:", $2, "MEM%:", $4, "VSZ:", $5, "RSS:", $6}'
echo -e "\n2. Memória do sistema:"
free -h
echo -e "\n3. Top processos por memória:"
ps aux --sort=-%mem | head -10
echo -e "\n4. Cache do clawdbot:"
clawdbot cache status 2>/dev/null || echo "Comando não disponível"
Problemas Relacionados
- Respostas Lentas — Performance degradada
- Gateway Não Inicia — Serviço não sobe
- Memória Cheia — Sistema travando
Prevenção
- ✅ Configure limites de cache desde o início
- ✅ Monitore uso de memória regularmente
- ✅ Use
htopou ferramentas de profiling - ✅ Reinicie o serviço periodicamente (cron semanal)
- ✅ Configure alertas de uso de memória
Próximos Passos
Se o problema persistir após essas otimizações:
- Considere aumentar a RAM do servidor
- Use um modelo mais leve (Sonnet em vez de Opus)
- Consulte a FAQ de Performance