Retour à la leçon
Mission

Mission : un serveur qui plante toutes les 48 heures sans coupable évident

Diagnostiquer méthodiquement une fuite mémoire en production, distinguer une vraie fuite d'une simple charge élevée, et localiser le composant fautif via des heap snapshots comparés.

Contexte

Le serveur redémarre automatiquement toutes les 48 heures avec une erreur "JavaScript heap out of memory". Le graphique de process.memoryUsage().heapUsed, relevé toutes les 30 secondes, montre une courbe qui monte de façon quasiment linéaire, sans jamais redescendre, même la nuit quand le trafic tombe à presque zéro. Un développeur soupçonne un setInterval qui accumule des écouteurs d'événements sur un EventEmitter partagé, ajouté à chaque nouvelle connexion WebSocket sans jamais être retiré à la déconnexion.