Module PM2 : gestionnaire d’applications javascript
Ce module global est un gestionnaire d’applications js. Il permet principalement de relancer l’application :
- dès qu’un fichier est modifié ;
- dès qu’une erreur survient et qui fait planter l’application web (par defaut l’application ne marche plus et il faut la relancer manuellement)
Doc officielle : https://github.com/Unitech/pm2 et https://pm2.keymetrics.io/
Installation :
npm install pm2 -g
Lancement d’une application avec PM2 :
pm2 start index.js

Arrêt d’une application :
pm2 stop index
Restart d’une appli :
pm2 restart index
Lister les applications prises en charge :
pm2 ls

Désenregistrement d’une application :
pm2 delete index
Visualiser les logs :
pm2 logs

Autres commandes pour les logs :
$ pm2 logs APP-NAME # Display APP-NAME logs $ pm2 logs --json # JSON output $ pm2 logs --format # Formated output $ pm2 flush # Flush all logs $ pm2 reloadLogs # Reload all logs
Monitorer ses applications :
pm2 monit

Le mode clusteur (de processeur)
Une application tourne sur un processeur par défaut. Il est possible de créer une instance par processeur.
>pm2 start index.js -i 4

Pour changer dynamiquement le nombre de CPU à utiliser :
pm2 scale index 2

Pour visualiser en temps réél la charge :
pm2 imonit

Module Artillery : outil pour faire un test de charge
Installation :
npm install artillery -g
Utilisation :
artillery quick -d 10 -r 100 -n 20 http://127.0.0.1:8080
Sur 10s, 100 nouveaux utilisateurs par secondes qui vont faire 20 requêtes, soit 20 000 requêtes au total sur 10s.