关于 node 内存溢出

2021-03-24 14:04:18 +08:00
 xingguang
我们项目本地启动的时候刚开始内存占用比较少大约 1G 的样子,但是过段时间就会越来越多,大约两三天之后会到 1.8G ,我之前修改的 node 内存限制,但是到 1.9G 的时候还是会内存溢出,想问下这是什么原因,有什么解决方案吗?
2582 次点击
所在节点    Node.js
8 条回复
lbunderway
2021-03-24 14:15:21 +08:00
牛逼 启动就这么多,确定没写错
lovedebug
2021-03-24 14:17:24 +08:00
memory cache 用多了? 还是全局大对象?
Mohanson
2021-03-24 14:28:34 +08:00
内存一直上涨不下降更多可能是“内存泄漏”, "内存溢出"是安全问题(内存越界, 缓冲溢出等等)
xingguang
2021-03-24 14:31:26 +08:00
@lbunderway 项目比较大了,webpack 打包内存占用确实大了点
fuis
2021-03-24 14:34:17 +08:00
拍 snapshot 对比排查吧。
love
2021-03-24 14:43:26 +08:00
告诉你一个神器:jemalloc,各发行版都带,用了都说好,效果太惊人了
LD_PRELOAD=/usr/lib/libjemalloc.so node ...

--max_semi_space_size=8
上面这个选项最好也设置下

--max_old_space_size=256
这个可选,根据你的实际内存需要
page470075640
2021-03-24 17:16:30 +08:00
开 inspect 然后拿到内存快照 用 Chrome 的内存工具 diff
wednesdayco
2021-03-24 18:15:06 +08:00
snapshot 才是正途...也是个不错的经验

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

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

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

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

© 2021 V2EX