【问题标题】:What does Heap Usage mean in PM2PM2 中的堆使用情况是什么意思
【发布时间】:2021-02-05 11:17:32
【问题描述】:

运行pm2 monit时,“自定义指标”窗口中的堆使用情况是什么意思?

我的服务器的值危险地接近 100%。

【问题讨论】:

  • 看起来像是已用堆大小/堆大小 (41/57 = 72%)。理想情况下,在一个高效编写的程序中,它应该是 100% 或接近 100%,因为这意味着所有 malloc 的内存都被实际使用,而不是简单地分配但没有使用
  • 为什么 100% 更好?因为 malloc 的内存不可用于其他程序。考虑一台具有 4GB 内存的 PC,而您的堆为 3GB——只剩下 1GB 的可用 RAM。但是,如果堆使用率只有 10%,这意味着您的程序仅使用 300MB,但分配(使其他程序无法使用)3GB 浪费了 2.7GB 未使用和不可用的 RAM
  • @slebetman 你的措辞让我困惑了一会儿。我没有意识到你提出问题是为了修辞而不是问!

标签: node.js express pm2


【解决方案1】:

堆是编程语言用来存储全局变量的内存。默认情况下,所有全局变量都存储在堆内存空间中。

这可能是因为您的程序变量。

您可以在超过限制后重置它或强制 pm2 自动为您执行。

pm2 start api.js --max-memory-restart 300M

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-07-08
    • 2020-04-04
    • 2017-03-28
    • 2016-08-26
    • 1970-01-01
    • 2014-10-27
    • 2019-10-15
    • 2020-11-03
    相关资源
    最近更新 更多