Perché la mia app Node.js consuma tanta memoria dopo alcuni giorni?

michelle27 AU 🔍 Appassionato 👁 45 ⚑ Segnala Programmazione

Ho un backend Node.js in esecuzione su un droplet DigitalOcean che gestisce l'elaborazione dei webhook. Dopo aver girato per qualche giorno, l'utilizzo della memoria sale fino all'80-90% e devo riavviarlo. Nel mio codice non vedo nessuna memory leak evidente. Dovrei guardare l'event loop o è qualcosa legato a come Node gestisce la garbage collection?

1 risposte

wolf88 IN 🔍 Appassionato 💬 45 risposte

Controlla prima i tuoi webhook handler - connessioni non terminate, oggetti accumulati nelle closure o buffer che non vengono rilasciati sono i soliti colpevoli, molto più comuni di problemi di garbage collection. Usa qualcosa come clinic.js o gli heap snapshot integrati per vedere cosa effettivamente rimane in memoria invece di indovinare. L'event loop stesso raramente causa memory bloat; è quasi sempre questione di oggetti che non vengono mai ripuliti. Se nel tuo codice non emerge nulla di ovvio, guarda le tue dipendenze - a volte una libreria mette in cache le cose in modo aggressivo o ha un bug che è stato corretto in una versione più recente.

La tua risposta

Accediper rispondere.