node.js - 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
占用了更多的内存并最终崩溃。我该如何解决这种情况?
解决方案
这是因为使用https://www.npmjs.com/package/throng并发为 1。看起来本地也存在某种内存泄漏,我正在检查“forker”(父级)过程而不是正在增长的实际过程。
推荐阅读
- oracle - 获取几个月的最新记录并使用 Oracle PL-SQL 为每个 ID 汇总其值
- r - 安装/运行 Rstan 的问题
- android - 使用 Seekbar 处理屏幕旋转进度而不丢失数据 - Android Kotlin
- node.js - 结合两个函数获取 authorId 的 firstName 和 secondName
- mysql - 错误(1045,“用户'user'@'172.27.0.3'的访问被拒绝(使用密码:YES)”)
- javascript - 如何在Angular的textarea中只允许ASCII字符
- java - 一个错误将我带到线程“main”中的 Transport.send(msg)Exception javax.mail.AuthenticationFailedException: 535-5.7.8 用户名和密码不是
- javascript - 是否可以使用 Chrome 开发工具查看内部迭代器内容
- node.js - 如何通过 Node JS 在 Azure 中创建子域
- apache-kafka - Confluent Cloud Kafka - 审计日志集群:接收器连接器