为什么即使堆内存很低,节点应用程序也会消耗更多的内存?

问题描述 投票:0回答:2

我在具有 8GB RAM 的 Linux 机器上部署了 NodeJS 应用程序,在进行负载测试时,节点应用程序消耗了高达 95% 的 Linux 内存,并且机器崩溃并需要重新启动系统。我检查了一下堆内存大约有30mb。所以,我不明白为什么内存使用量会增加,消耗了什么样的数据?

使用以下命令来检查实时内存使用情况,

top -o %MEM%

javascript node.js performance memory-management nodejs-server
2个回答
1
投票

您的代码中的某个地方可能存在内存泄漏。一种可能在您的开发环境中处理/抑制但不在 Linux 中的情况。

一些让您走上正轨的建议:

  • 检查所有流是否已正确关闭。
  • 确保增长的数组限制在合理的最大长度。

0
投票

如果它是一个网络应用程序,那么考虑用 go 编写。它具有非常高效的垃圾收集功能,并且经过了实际测试,但是如果您热衷于使用 js 进行开发,那么请考虑切换到 Bun。它比节点速度快并且具有高效的内存管理。希望这有帮助

© www.soinside.com 2019 - 2024. All rights reserved.