发布于2026-07-07 阅读(0)
扫一扫,手机访问

监控这件事,说复杂也复杂,说简单也简单。关键是把层次拆清楚,工具选对,流程跑通。下面从整体思路开始,一步步落地。
监控可以从五个维度来看:先是应用进程和业务指标——用 PM2 管理进程、查看资源、收集日志,或者在代码里用 process 模块把关键指标输出来。然后是系统资源层,用 top/htop、vmstat、iostat、free、df 盯住 CPU、内存、磁盘 I/O 和文件系统。第三层是日志链路,Winston、Bunyan、Pino 这类结构化日志工具是标配,配上 ELK(Elasticsearch/Logstash/Kibana)、Graylog 或 Splunk 做检索和可视化,排查问题效率会高很多。第四层是指标与可视化,可以自建 Prometheus + Grafana 看板,也可以直接用 New Relic、Datadog 这些 APM 服务。最后是性能剖析,用 node --inspect 配合 Chrome DevTools 做 CPU 和内存分析,精准定位热点和泄漏。
PM2 是 Node 生态里最常用的进程管理工具,没有之一。下面几个步骤就能把监控基础搭起来。
sudo npm install -g pm2pm2 start app.js --name my-apppm2 list(查看进程列表)、pm2 monit(实时资源监控)、pm2 logs my-app(查看日志)、pm2 startup(设置开机自启)、pm2 sa ve(持久化当前进程列表)用 systemd 管理 Node 服务是个更稳妥的方案——在服务配置里加上 Restart=always,进程崩溃后自动重启。配合 PM2 做多实例和负载均衡,生产环境基本就稳了。
在代码里输出一些关键指标非常实用:process.memoryUsage() 可以拿到常驻内存和堆大小,process.cpuUsage() 得到用户态和内核态的 CPU 时间。这些数据跟系统层的指标一对照,哪个环节出问题一目了然。
系统工具虽然古老,但老家伙们往往最靠谱。遇到卡顿或高负载,先翻它们的牌。
top/htop 按 CPU% 或 MEM% 排序,立刻找到哪个 Node 进程在吃资源。vmstat 3 给出进程、内存、I/O、CPU 的概览;iostat -x 能看出磁盘 I/O 是不是瓶颈;free -m 看内存使用详情;df -h 检查磁盘空间。sar -u 1 3 看 CPU 使用率,sar -r 1 看内存,前提是装了 sysstat 包。nethogs 可以按进程显示带宽占用,iftop 则按连接看实时流量——排查网络波动时特别好用。日志和 APM 是“看见”系统运行状态的两只眼睛。结构化日志让查询变得像在数据库里做 SQL,APM 则帮你画出调用链路和依赖地图。
requestId、userId 等上下文,后续检索聚合效率翻倍。当线上真的出了性能问题,光靠日志和 stats 可能还不够,得掏出更锋利的工具做定点排查。
带上 --inspect 参数启动应用:node --inspect app.js,然后用 Chrome DevTools 的 Performance 和 Memory 面板做 CPU 采样、内存快照。配合 PM2 monit 和系统 top/htop 观察资源变化,修复后马上能验证效果。
总结一个实用的排查流程:先看 PM2 日志和异常堆栈,定位错误或异常;再看系统资源(CPU、内存、磁盘、网络)有没有异常波动;接着用 DevTools 做 CPU 采样或内存快照,找到热点代码或泄漏点;最后回归业务指标——延迟、吞吐、错误率,确认恢复。按这个顺序走,大部分问题都能快速锁定。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
8