Limite le nombre de processus NodeJS

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) :

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…

Et au contraire, on peut augmenter la quantité de mémoire vive utilisée par le serveur Nodejs.

 

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.

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) :

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

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

Quitter la version mobile