在 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 应用的性能指标,及时发现并解决性能问题,确保应用的稳定运行和高效性能。