hyu*_*ock 7 heap-memory node.js pm2
我目前正在使用 pm2 运行 node.js。
最近,我能够使用 pm2 monit 命令检查“自定义指标”。
此处显示堆大小、已用堆大小和活动请求等信息。
我不知道堆大小是如何确定的。实际上,我检查了在不同服务器上运行的pm2。
每个都设置为 95mib / 55mib,相应地,使用的堆大小也不同。
另外,堆使用率越接近 100% 越好吗?
在“StackOverflow”上搜索相关信息时,我看到了以下文章。
另外,主动请求是什么意思?它持续为零。
谢谢你!
[编辑]
环境:ubuntu18.04 [ec2-t3.micro]
节点版本:v10.15
[额外的]
服务器内存:1GB [已使用 40~50%]
cpu : vCPU (2) [ 已使用 1~2% ]
O. *_*nes 13
堆是您要求 PM2 管理和监控的程序所使用的 RAM。在 Javascript 和类似语言运行时中,堆空间是在程序创建对象时分配的,并在垃圾收集时释放的。您的运行时会在需要时向操作系统请求更多堆空间:当活动分配超过可用空间时。因此,随着程序启动,堆大小可能会增加。这很正常。
\n大多数程序在执行工作时会分配和释放大量对象,因此您不应尝试优化堆的使用百分比。当您的程序以稳定状态 \xe2\x80\x93 运行时,即在启动 \xe2\x80\x94 之后,您会发现利用率百分比不断上升,直到发生垃圾收集,然后又回落。例如,nodejs/express Web 服务器为每个传入请求分配req和res对象,然后使用它们,然后删除它们,以便垃圾收集器可以回收它们的 RAM。
如果分配的堆大小在几分钟或几小时内持续增长,则可能存在内存泄漏。这是一个编程错误:一个你应该尽力解决的问题。您应该了解它如何适用于您的应用程序语言。除此之外,不必太担心堆使用情况。
\n活动请求计数通过各种异步对象(例如文件写入器和 TCP 连接)完成的工作。除非您的程序非常繁忙,否则它会保持接近于零。
\n如果您的程序进行计算,请注意循环延迟。如果它逐渐增加,则说明某些计算函数正在占用 Javascript。
\n| 归档时间: |
|
| 查看次数: |
13178 次 |
| 最近记录: |