Artigos sobre: Solução de Problemas

Vazamento de memória em Node.js: identificar e corrigir

O que é um vazamento de memória (memory leak)


Um vazamento de memória acontece quando sua aplicação aloca memória e nunca a libera. Com o tempo, o consumo de RAM cresce continuamente até o processo travar ou ser encerrado pelo sistema por falta de memória. Em Node.js isso é comum quando objetos que deveriam ser descartados continuam "presos" por referências que nunca são removidas.


Sintomas


  • O uso de RAM sobe de forma constante e nunca volta a cair.
  • A aplicação fica lenta com o passar das horas.
  • Quedas periódicas (crash) seguidas de reinício.
  • Mensagens como JavaScript heap out of memory.


Causas mais comuns


  • Listeners de eventos não removidos: registrar on(...) repetidamente sem removeListener.
  • Closures e variáveis globais: dados acumulados em variáveis que vivem por toda a execução.
  • Cache infinito: guardar itens em um objeto ou Map sem nunca limpar.
  • Timers: setInterval que nunca recebe clearInterval.


Como identificar


1. Monitore o uso de memória. Acompanhe o consumo de RAM ao longo do tempo. Um gráfico que só sobe é o principal indício.


2. Tire um heap snapshot. Rode a aplicação com a flag de inspeção node --inspect sua-aplicacao.js, abra chrome://inspect no navegador, capture dois snapshots com alguns minutos de diferença e compare o que cresceu.


3. Use process.memoryUsage(). Logue periodicamente process.memoryUsage().heapUsed para enxergar a tendência.


Como corrigir


  • Sempre remova listeners que não serão mais usados.
  • Defina um limite para caches (ex.: LRU cache) e expire itens antigos.
  • Limpe timers com clearInterval e clearTimeout.
  • Evite acumular dados em variáveis de escopo global.


Monitorando memória na Square Cloud


Na Square Cloud você acompanha o consumo de RAM da sua aplicação em tempo real pelo Dashboard. Se o uso passar do limite do seu plano, a plataforma avisa — então fica fácil identificar um vazamento antes que ele derrube a aplicação. Combine o monitoramento com as boas práticas acima para manter seu bot ou API estáveis 24/7.ção

Atualizado em: 13/06/2026

Este artigo foi útil?

Compartilhe seu feedback

Cancelar

Obrigado!