optimiser les performances de votre api node.js en production avec pm2 et clustering : guide technique
22/02/2026
Introduction
En production, la montée en charge d’une API Node.js peut rapidement révéler des goulets d’étranglement CPU ou mémoire. PM2, gestionnaire de processus populaire, associé au clustering natif de Node.js, permet de maximiser l’utilisation des cœurs CPU, d’assurer une haute disponibilité et de faciliter le reload zéro downtime. Dans ce guide, vous découvrirez pas à pas comment déployer et optimiser votre API Node.js avec PM2 en mode cluster.
1. Installer et configurer PM2
- Installation globale
npm install -g pm2@latest - Initialiser votre application
pm2 init simpleCela crée un fichier
ecosystem.config.jsde base. - Configurer le mode cluster
module.exports = { apps: [{ name: "my-api", script: "server.js", instances: "max", exec_mode: "cluster", autorestart: true, watch: false, max_memory_restart: "200M" }] };–
instances: "max"utilise tous les cœurs CPU disponibles. –max_memory_restartredémarre automatiquement en cas de fuite mémoire.
2. Lancer et superviser votre cluster
- Démarrage en mode production
pm2 start ecosystem.config.js --env production - Vérifier l’état des processus
pm2 listObtenez CPU, mémoire et statut de chaque worker.
- Logs en temps réel
pm2 logs my-api --lines 100 - Reload zéro downtime
pm2 reload my-apiDéploiement sans interruption de service.
Exemple de métriques après clustering
| Worker | CPU (%) | Mémoire (MB) |
|---|---|---|
| 0 | 12 | 45 |
| 1 | 15 | 47 |
| 2 | 11 | 42 |
| 3 | 13 | 44 |
3. Bonnes pratiques et optimisations avancées
- Gestion de la mémoire : ajustez
max_memory_restartselon vos tests de charge. - Monitoring externe : intégrez Docker + AI Monitoring (Prometheus, Grafana) pour alertes et dashboards.
- Logs structurés : utilisez
pm2 install pm2-logrotatepour faire pivoter vos logs et éviter l’épuisement du disque. - Cluster + Load Balancer : placez un Nginx en front pour répartir la charge et gérer le SSL (voir configuration).
- Mises à jour canary : déployez progressivement en combinant
pm2 reload --only my-api --update-envavec un reverse proxy.
4. Erreurs fréquentes et astuces
- “Process out of memory” : augmentez
max_memory_restartou réduisez le nombre d’instances. - “Port already in use” : vérifiez que chaque worker écoute sur le même port en mode cluster (Node.js le gère automatiquement).
- “Crash Loop” : activez
restart_delaypour éviter les redémarrages en boucle :restart_delay: 5000
Conclusion
Mettre en place PM2 en mode cluster permet de tirer parti de tous vos cœurs CPU, d’améliorer la résilience et de simplifier vos déploiements en production. En combinant ces techniques avec un monitoring adapté, vous garantissez un service rapide et disponible pour vos utilisateurs. Pour aller plus loin, découvrez nos expertises en Node.js et en renfort technique chez Novane.
Prêt à booster vos performances Node.js ? Contactez-nous pour un audit personnalisé.

