Vous avez installé un serveur NodeJS sur votre ordinateur de développement ou sur un serveur, de test ou de production. Vous avez surtout remarqué que les processus node.exe sont nombreux et consomment chacun plusieurs centaines de Mo de mémoire vive. La raison est simple : dans sa configuration par défaut, Node JS crée 1 processus par coeur de processeur. Cela signifie que si votre PC ou votre serveur est équipé d’un CPU de 8 coeurs, il y aura 8 processus node.exe qui peuvent chacun consommer 300, 350, 400, 450Mo de RAM physique, soit peut-être 5Go de RAM pour le serveur NodeJS. Sur une machine Windows ou Windows Server, il s’agit du processus node.exe de description « Node.js: Server-side JavaScript » qui est concerné.

Exemple avec une machine virtuelle équipée de 2 coeurs (VM avec 2 vCPU) :

processus Windows node.exe node.js nodejs

Ce tutoriel explique comment limiter le nombre de processus serveur Node.js pour économiser la RAM (mémoire vive) d’un serveur Windows. Intéressant pour un serveur de test ou de recette, ou encore pour un développeur web ou une plateforme de R&D, cette limitation ne sera pas recommandée en environnement de production où l’on cherchera les performances maximales du hardware serveur.

Node.js est une plateforme logicielle pour les applications qui doivent pouvoir monter en charge, telle qu’une application web ou SaaS. NodeJS intègre un serveur web qui permet l’exécution de JavaScript côté serveur. Les plus grands utilisent un serveur web Node.js : PayPal, SAP, Linkedin, Groupin, Microsoft, Rakuten, Sage…

 

Node.js : limiter la consommation mémoire vive RAM

Par défaut, il y a 1 processus NodeJS par cœur donc 300Mo de RAM x nombre de cœurs de CPU.

1. Sur le poste qui héberge Node.js, ouvrir un Invite de commandes (cmd) en tant qu’Administrateur.

Windows 10 invite commandes cmd en tant administrateur

2. Aller dans le dossier d’installation de Node.js, par exemple :

cd C:\nodejs\bin

3. Editer le service NSSM :

nssm edit NomService

4. A l’onglet Application, dans le champ Paramètres, rajouter « -f 1 » à la fin de la ligne pour définir un seul processus au maximum de NodeJS (espace, tiret f espace 1) :

nodejs nssm edit

5. Cliquer sur « Editer le service » pour enregistrer les modifications.

6. Redémarrer le serveur Nodejs pour appliquer le changement de nombre de processus.