首页 > 解决方案 > app/.heroku/node/bin/node 占用大量内存并崩溃

问题描述

最近我的 heroku 应用程序开始出现内存错误。我并没有真正改变任何可能影响它的东西。经过一些浸泡测试和调试后,我注意到测功机上运行了两个节点进程:

这是我从 ps 命令中看到的示例:

~ $ ps aux | grep "node"
u18923      46  0.0  0.0   2616   612 ?        S    17:54   0:00 sh -c node ${NODE_INSPECT_FLAG} --gc-interval=100 --max-old-space-size=460 build-server/server/index.js
u18923      47  0.6  0.1 982148 79796 ?        Sl   17:54   0:03 node --gc-interval=100 --max-old-space-size=460 build-server/server/index.js
u18923      72 12.9  0.3 1079028 195700 ?      Sl   17:54   1:02 /app/.heroku/node/bin/node --gc-interval=100 --max-old-space-size=460 /app/build-server/server/index.js

/app/.heroku/node/bin/node 内存消耗增加并最终导致应用程序崩溃,因为环境限制为 512MB 内存。

为什么有两个节点进程?为什么来自的那个/app/.heroku占用了更多的内存并最终崩溃。我该如何解决这种情况?

标签: node.jsheroku

解决方案


这是因为使用https://www.npmjs.com/package/throng并发为 1。看起来本地也存在某种内存泄漏,我正在检查“forker”(父级)过程而不是正在增长的实际过程。


推荐阅读