在Linux环境中,监控Node.js应用的内存占用是日常运维与调试中的常见需求。许多开发者认为这很复杂,但实际上方法众多,且各有其便捷之处。下面将详细介绍几种常用方案,您可根据实际场景灵活选用。

从最基础的工具说起。top命令是经典的系统监控利器。在终端中输入top并回车,即可看到实时刷新的进程列表,其中包含Node.js进程的内存占用信息。找到目标进程,关注RES(常驻内存)或VIRT(虚拟内存)列即可。该方法简单直接,但界面较为原始。
如果您觉得top不够直观,可以尝试htop——它是top的增强版,界面更清爽,操作更人性化。使用前需要先安装:
sudo apt-get install htop
安装完成后运行htop,同样找到对应进程,内存使用情况一目了然。并且支持鼠标点击排序,便于快速定位。
另一个经典命令是ps。例如,您想单独查看某个进程的内存和CPU占用:
ps -p 12345 -o %mem,%cpu
将12345替换为您的Node进程PID即可。这种方式非常适合编写脚本或进行快速检查,输出简洁明了。
接下来是pm2——如果您已经在使用pm2管理Node进程,那么内存监控会更加便捷。首先全局安装:
npm install pm2 -g
然后通过pm2 start启动应用,再运行:
pm2 monit
此时会弹出一个实时监控面板,内存、CPU、日志等信息清晰可见。对于生产环境下的多进程管理,pm2几乎是标准配置。
最后,还有一种在代码中直接获取内存数据的方式——使用Node.js内置的process.memoryUsage()方法:
const memoryUsage = process.memoryUsage();
console.log(memoryUsage);
返回的对象包含rss、heapTotal、heapUsed、external等字段。适合在代码中埋点,结合日志或告警系统实现精细化监控。
总结一下:日常快速查看推荐top或htop;脚本化查询选用ps;进程管理场景使用pm2 monit;需要定制化监控则在代码中通过process.memoryUsage()实现。根据需求合理选择,没有绝对的最优方案,只有最适合您的工具。
