我正在运行我的服务器pm2 start ...
and pm2 monit
正在向我展示3GB memory
2个小时之后。所以我附加了memwatch,现在我又等了2个小时,再次显示内存pm2 monit
到达3GB
.
因此,我检查了 memwatch 生成的日志。给我看了:
{ before: { nodes: 75659, size_bytes: 11141702, size: '10.63 mb' },
after: { nodes: 73226, size_bytes: 10840598, size: '10.34 mb' },
change:
{ size_bytes: -301104,
size: '-294.05 kb',
freed_nodes: 5141,
allocated_nodes: 2708,
还有另一个:
{ before: { nodes: 72591, size_bytes: 10728318, size: '10.23 mb' },
after: { nodes: 73284, size_bytes: 10798062, size: '10.3 mb' },
change:
{ size_bytes: 69744,
size: '68.11 kb',
freed_nodes: 5931,
allocated_nodes: 6620,
现在我真的很困惑,这些是最后的日志,所以我很确定这些是生成的日志pm2 monit
显示出巨大的内存泄漏。
那么,为什么是memwatch
给我看10MB+
内存和 pm2 监视器显示3GB+
?
现在切换到类似的东西forever
or monit http://mmonit.com/monit/看看泄漏是否仍然存在。
多一点背景
- 我一直在尝试分析并找到泄漏,并且配置文件上并没有显示任何泄漏。
- memwatch diff 在客户端连接时启动,并在客户端断开连接时获取差异。