Linux 上, nodejs 程序内存溢出问题,如何排查

2018-07-30 17:23:46 +08:00
 v2future
写了一个 nodejs 小程序,部署在 linux 上,跑五六个小时后,内存占用就达到 90%,要怎么排查呢
网上搜索的一圈,说用 heapdump,但这个在 linux 上部署不了,大家有办法吗
6011 次点击
所在节点    Node.js
5 条回复
ginozhu
2018-07-30 17:40:36 +08:00
heapdump 为啥 linux 上部署不了?

heapdump 不行的话,用 inspect,然后远端用 chrome devtool 也可以 dump 出 heap
xiaoxin8888
2018-07-30 17:47:23 +08:00
检查下代码, 是不是有数组一直往里加没有清的情况.
lzvezr
2018-07-30 18:15:53 +08:00
其实可以用 alinode
jerry4718
2018-08-07 18:34:35 +08:00
是不是有事务没提交的
v2future
2018-08-16 16:46:59 +08:00
上一次 headdump 没装上是因为 g++没安装
把内存快照导入 chrome 控制台后发现存在大量未销毁 socket 对象
排查代码,是因为 close socket 的代码写错了,而且没打印异常日志。
现在正常了,程序跑一个礼拜,内存都没有增长。
谢谢大家了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/475420

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX