Mémoire
Ce document vous apprendra comment déboguer les problèmes liés à la mémoire.
Mon processus est à court de mémoire
Node.js (JavaScript) est un langage à garbage collection, donc des fuites de mémoire sont possibles par le biais de rétenteurs. Comme les applications Node.js sont généralement multi-locataires, critiques pour l'entreprise et à long terme, il est essentiel de fournir un moyen accessible et efficace de trouver une fuite de mémoire.
Symptômes
L'utilisateur observe une augmentation continue de l'utilisation de la mémoire (pouvant être rapide ou lente, sur des jours ou même des semaines), puis voit le processus planter et redémarrer par le gestionnaire de processus. Le processus est peut-être plus lent qu'avant et les redémarrages entraînent l'échec de certaines requêtes (l'équilibreur de charge répond avec 502).
Effets secondaires
- Redémarrages du processus dus à l'épuisement de la mémoire et les requêtes sont perdues
- L'activité accrue du GC entraîne une utilisation plus élevée du processeur et un temps de réponse plus lent
- Le GC bloquant la boucle d'événements provoque des ralentissements
- L'augmentation de l'échange de mémoire ralentit le processus (activité du GC)
- Il se peut qu'il n'y ait pas assez de mémoire disponible pour obtenir un instantané du tas
Mon processus utilise la mémoire de manière inefficace
Symptômes
L'application utilise une quantité inattendue de mémoire et/ou nous observons une activité accrue du garbage collector.
Effets secondaires
- Un nombre élevé de fautes de page
- Activité du GC et utilisation du processeur plus élevées