Nâng CaoNode.js iconNode.js

PM2 là gì? Tại sao dùng PM2 trong production?

PM2 là production process manager không thể thiếu cho Node.js — cluster mode tận dụng multi-core CPU, pm2 reload cho zero-downtime deploy, max_memory_restart auto-restart khi memory leak.

  • PM2 là production process manager cho Node.js — giải quyết auto-restart, clustering, logging, monitoring trong một tool.
  • Ecosystem config (ecosystem.config.js): module.exports = { apps: [{ name: 'api', script: 'dist/index.js', instances: 'max', exec_mode: 'cluster', env: { NODE_ENV: 'production', PORT: 3000 }, max_memory_restart: '500M', error_file: 'logs/err.log', out_file: 'logs/out.log' }] }pm2 start ecosystem.config.js.
  • Zero-downtime reload: pm2 reload api restart từng worker một (rolling restart), không như pm2 restart kill tất cả cùng lúc — dùng reload cho deploys.
  • Monitoring dashboard: pm2 monit real-time CPU/RAM per process; pm2 status overview tất cả processes.
  • Log management: pm2 logs api --lines 100 xem logs; pm2 flush clear logs; tích hợp với logrotate để tránh disk full.
  • Startup scripts: pm2 startup generate systemd/init script để PM2 tự start khi server reboot; pm2 save lưu current process list. max_memory_restart: tự restart process khi vượt ngưỡng RAM — safety net cho memory leaks.

Pitfall: PM2 cluster mode dùng shared nothing — sessions/cache phải ở Redis; pm2 reload không graceful nếu app không handle SIGINT/SIGTERM.

Xem toàn bộ Node.js cùng filter theo level & chủ đề con.

Mở danh sách Node.js