首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何为node.js确定正确的“最大旧空间大小”?

如何为node.js确定正确的“最大旧空间大小”?
EN

Stack Overflow用户
提问于 2018-01-22 17:24:35
回答 4查看 275.1K关注 0票数 229

我很难理解Node.js是如何基于参数max-old-space-size工作的。

例如,在我的例子中,我运行两个t2.small AWS实例(2GB内存)。

不知道为什么,但我确实设置了max-old-space-size=4096 (4GB)。在这种情况下节点是做什么的?这种配置会导致内存分配失败吗?

如何根据服务器资源确定max-old-space-size的正确值?

我的应用程序在不断增加内存使用量,我正在努力了解有关节点内部的所有内容。

EN

Stack Overflow用户

发布于 2020-08-19 21:33:27

2020更新

这些选项是现在由节点正式记录。对于2GB的机器,您可能应该使用:

代码语言:javascript
运行
复制
NODE_OPTIONS=--max-old-space-size=1536

确定要使用的金额

您可以使用free -m在Linux机器上看到可用内存。请注意,您可以将freebuffers/cache内存的总数考虑为可用的,因为buffers/cache可以在需要时立即丢弃(这些缓冲区和缓存是使用其他未使用内存的好方法)。

max-old-space-size还提到:

在内存为2GB的计算机上,考虑将其设置为1536 (1.5GB)

因此,上述价值。考虑到基本操作系统所需的内存量并没有太大的变化,所以您可以很高兴地在一台4GB的机器上完成3.5。

要注意默认值并查看更改的效果:

缺省值为2GB:

代码语言:javascript
运行
复制
$ node

> v8.getHeapStatistics()
{
  ....
  heap_size_limit: 2197815296,
}

2197815296是2GB字节。

当设置为8GB时,您可以看到heap_size_limit更改:

代码语言:javascript
运行
复制
$ NODE_OPTIONS=--max_old_space_size=8192 node
Welcome to Node.js v14.17.4.
Type ".help" for more information.
> v8.getHeapStatistics()
{
  ...
  heap_size_limit: 8640266240,
  ...
}

正如@Venryx下面提到的,您也可以使用process.memoryUsage()

票数 135
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/48387040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档