
PM2 是一款用於 Node.js 應用程式的生產級進程管理器,旨在確保高可用性與最佳效能。與簡單的進程執行器不同,PM2 內建負載平衡器、零停機重啟及全面的日誌管理功能。它能獨特地處理進程生命週期管理,包括在崩潰或系統重啟時自動恢復。透過利用 Node.js 的 cluster 模組,開發者無需修改程式碼即可將應用程式擴展至所有可用的 CPU 核心。它是 DevOps 工程師與後端開發者管理生產環境 Node.js 的業界標準。
PM2 支援應用程式熱重啟,且不會中斷傳入的連線。透過使用 cluster 模組,它能優雅地逐一重啟進程,確保應用程式在部署更新期間對使用者保持可用。這消除了維護視窗的需求,並防止了 CI/CD 流程執行期間的服務中斷,這對於高流量的生產環境至關重要。
整合式負載平衡器可將傳入的 HTTP/HTTPS 請求分配至所有已啟動的應用程式實例。藉由利用 Node.js 的 cluster 模組,PM2 能最大化多核心伺服器上的 CPU 使用率。這使得單一 Node.js 應用程式能比單執行緒實例處理更高併發的請求量,從而在單台機器上實現有效的水平效能擴展。
PM2 提供集中式儀表板,可即時監控每個進程的 CPU 與記憶體使用量。它將來自多個實例的日誌聚合為單一串流,簡化了除錯與錯誤追蹤。使用者可透過 'pm2 logs' 存取日誌,或將其導向至外部日誌聚合器,無需 SSH 進入個別容器即可掌握應用程式健康狀況與效能瓶頸。
PM2 會監控應用程式健康狀況,若因未處理的異常或記憶體洩漏導致崩潰,它會自動重啟進程。此「永遠在線」功能確保服務能立即恢復,無需人工介入。透過維護持久的進程列表,PM2 保證了關鍵後端服務即使在伺服器重啟或意外系統故障後仍能保持運行。
PM2 支援強大的生態系統,包括用於進階監控、警報與多伺服器管理的 PM2 Plus。它能與 Jenkins、GitHub Actions 及 GitLab CI 等 CI/CD 工具無縫整合,實現自動化部署工作流。其採用 ecosystem.config.js 檔案的「配置即程式碼」方法,確保環境變數與部署設定在開發、測試及生產環境中保持版本控制與一致性。
後端開發者使用 PM2 將 Node.js API 擴展至所有 CPU 核心。透過使用 cluster 模式,他們確保 API 能處理數千個併發請求,維持低延遲與高吞吐量,並自動重啟任何在高負載下失敗的實例。
DevOps 團隊透過在單一 PM2 設定檔中定義多個服務來管理複雜的微服務架構。這使他們能從單一介面啟動、停止並監控數十個獨立服務,確保整個基礎架構具備一致的部署模式。
系統管理員使用 PM2 來封裝缺乏內建進程管理的舊版 Node.js 腳本。PM2 為這些腳本提供了自動重啟、日誌輪替與開機自啟等現代化功能,在無需重構程式碼的情況下延長了舊應用程式的壽命與可靠性。
需要可靠的工具來管理應用程式生命週期、確保零停機部署,並維持生產叢集中的系統穩定性。
需要在開發與生產環境中以簡單、高效的方式執行、擴展與監控 Node.js 應用程式,而無需複雜的容器編排。
專注於伺服器正常運行時間與資源管理,需要能自動化進程恢復並提供清晰資源消耗可視性的工具。
開源軟體 (AGPL-3.0 授權)。PM2 本身免費;其公司 (Keymetrics) 提供付費的 SaaS 監控與管理服務。