在 Linux 系統下監控 Node.js 性能有多種方法,以下是一些常用的工具和技巧:
使用內置命令
- top 命令:實時監控系統運行狀態,按 CPU、內存和執行時間排序,支持交互式命令設定。
- vmstat 命令:提供系統、進程狀態、CPU、內存、磁盤等信息。
- uptime 命令:顯示系統過去 1、5、15 分鐘內的平均負載量。
- sar 命令:動態查看系統的平均負載。
- free 命令:查看系統內存使用情況。
- iostat 命令:查看磁盤 I/O 使用情況。
使用第三方工具
- Easy-Monitor:基于 Egg.js 的 Node.js 性能監控解決方案,提供性能監控、錯誤日志展示與依賴、Npm 模塊安全風險提示等功能。
- NetData:一個用于系統和應用的分布式實時性能和健康監控工具,提供全面檢測。
- express-status-monitor:適用于 Express 應用的性能監控庫,添加特定代碼后可在 /status 端點查看性能指標。
- Node.js 內置的性能監控工具:如
process.memoryUsage()
和 process.cpuUsage()
,用于獲取應用的內存和 CPU 使用情況。
- New Relic、Datadog:第三方性能監控服務,提供更全面的監控和分析功能。
- pm2:進程管理器,提供進程監控、日志記錄和自動重啟等功能。
- journalctl:在基于 Systemd 的 Linux 系統中,查看與 Node.js 相關的系統日志。
- Winston 和 Bunyan:流行的 Node.js 日志記錄庫,提供靈活的日志記錄級別、格式化和傳輸方式。
- strace:查看系統調用,分析進程所用到的系統調用。
使用 Node.js 特定模塊
- perf_hooks:Node.js 提供的性能分析工具模塊,提供高精度時間戳,用于測試代碼耗時。
通過上述方法,可以有效地監控和管理 Linux 系統上 Node.js 應用的性能指標,及時發現并解決性能問題,確保應用的穩定運行和高效性能。