首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >node.js堆内存和使用的堆大小[pm2]

node.js堆内存和使用的堆大小[pm2]
EN

Stack Overflow用户
提问于 2020-10-08 06:25:33
回答 1查看 7.9K关注 0票数 6

我目前正在使用node.js运行pm2。

最近,我能够使用pm2 monit命令检查“自定义度量”。

这里显示了堆大小、使用的堆大小和活动请求等信息。

我不知道堆大小是如何确定的。实际上,我检查了运行在不同服务器上的pm2。

每个堆被设置为95mib / 55mib,因此,所使用的堆大小是不同的。

此外,堆的使用是否更接近100%?

在搜索"StackOverflow“以查找相关信息时,我看到了以下文章。

What does Heap Usage mean in PM2

什么是主动请求?它是连续的零。

谢谢!

编辑

环境: ubuntu18.04 ec2 -t3.微

节点版本: v10.15

附加内容

服务器内存: 1GB 40~50%使用

cpu :使用vCPU (2) 1~2%

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-10-10 15:42:51

堆是您要求PM2管理和监视的程序所使用的RAM。当程序创建对象并在垃圾收集时释放时,将分配Javascript和类似语言运行时的堆空间。运行时要求操作系统在需要时提供更多的堆空间:当活动分配超过空闲空间时。因此,随着程序的启动,堆的大小可能会增加。这很正常。

大多数程序在执行任务时分配和释放大量对象,因此不应该试图优化堆的%使用率。当您的程序处于稳定状态(即启动后)时,您将发现%利用率在缓慢上升,直到垃圾回收发生,然后再下降。例如,nodejs/express服务器为每个传入请求分配reqres对象,然后使用它们,然后删除它们,以便垃圾收集器可以回收它们的内存。

如果您分配的堆大小持续增长,超过几分钟或几个小时,您可能会出现内存泄漏。这是一个编程错误:一个你应该尽力解决的问题。您应该查找应用程序语言是如何工作的。除此之外,不要太担心堆的使用。

活动请求计算通过各种异步对象(如文件编写器和TCP连接)完成的工作。除非你的程序很忙,否则它会保持在零附近。

如果您的程序进行计算,请密切关注循环延迟。如果它爬起来了,一些计算函数就会占用Javascript。

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64256883

复制
相关文章

相似问题

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