

1 nomagick 2022-11-04 16:15:37 +08:00 正常的,v8 不愿意把内存释放给操作系统,倾向于自己管理,这有个上限,默认是不到 2G 来着 |
2 jchnxu 2022-11-04 16:19:05 +08:00 snapshot 一下,看哪些对象没有被释放? |
3 helloriver952 OP @nomagick 有没有办法让他释放呢,一个服务器部署许多个程序,不释放掉太卡了。 尝试使用了 jemalloc 好像没什么用,不知道是不是姿势不对 我看 node 下边有 issue 通过 jemalloc 解决了此问题 |
4 helloriver952 OP @jchnxu 堆内存 189.38M ,应该不是程序内变量没有释放 |
5 nomagick 2022-11-04 16:56:52 +08:00 设置一下--max-old-space-size ,再不行就是 c++世界什么地方泄漏了,检查一下有没有用原生库之类的 |
6 helloriver952 OP @nomagick 谢谢 确实用到了 一些 c 和 c++的库 通过 child_process 调用的 我仔细排查一下 |
7 qfdk PRO 干啥的啊 是不是有定时任务? 网络请求? graphql 这样的东西 fetch ? |
8 gen900 2022-11-05 09:30:58 +08:00 via iPhone 去掉怀疑的模块,一个个试。看内存有没有降下来 |
9 helloriver952 OP @gen900 目前我在这样做呢 |
10 helloriver952 OP @qfdk 应该不是吧 |
11 helloriver952 OP 经过排查最终发现是 node-canvas 的问题 可能是 c++内存泄露 https://github.com/Automattic/node-canvas/issues/1974 目前未得到解决 |