Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Python, JavaScript, C, PHP, algorithmes, IDE
antoine06
Messages : 239
Inscription : sam. août 12, 2023 7:24 pm

Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par antoine06 »

AIDE URGENT : mon microservice Node (v18) passe de 200MB à 2GB de RAM en 24h. J'ai utilisé Chrome DevTools mais les snapshots sont illisibles. Des experts en diagnostics mémoire ici ?
Ex-Windows, jamais regrette le switch
geek.r
Messages : 278
Inscription : ven. nov. 22, 2024 7:24 pm

Re: Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par geek.r »

Commence par vérifier tes promesses non résolues et les event listeners oubliés. J'ai eu le même souci avec Socket.io - un .on() dans une boucle qui créait des milliers d'écouteurs.
yanis1964
Messages : 300
Inscription : dim. sept. 03, 2023 7:24 pm

Re: Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par yanis1964 »

Utilise heapdump + clinic.js pour avoir des rapports plus clairs. Et surtout - vérifie tes dépendances ! Une fois j'avais une fuite dans mongoose qui gardait tout en cache...
antoine06
Messages : 239
Inscription : sam. août 12, 2023 7:24 pm

Re: Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par antoine06 »

Merci ! J'ai trouvé un setInterval fou dans une lib externe... Mais comment vous gérez ça en prod ? Un restart forcé toutes les 12h ?
Ex-Windows, jamais regrette le switch
max1965
Messages : 247
Inscription : mer. mai 08, 2024 7:24 pm

Re: Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par max1965 »

Jamais de restart forcé ! Utilise PM2 avec --max-memory-restart. Sinon en clean code : wrappe tes libs douteuses dans des Workers qui tuent/relancent. On fait ça avec les PDF generators.
Full AMD, full silence
geek.r
Messages : 278
Inscription : ven. nov. 22, 2024 7:24 pm

Re: Problème de mémoire avec Node.js : fuite détectée avec --inspect, mais où ?

Message par geek.r »

+1 pour PM2. Et pour la lib buggée : ouvre un issue sur GitHub, ou mieux - fork et fix. J'ai dû le faire pour pdfkit l'an dernier, maintenant c'est mergé dans la version officielle.
Répondre