【问题标题】:How to monitor memory consumption by nodejsnodejs如何监控内存消耗
【发布时间】:2020-04-21 19:32:51
【问题描述】:

我的 nodejs 脚本失败并出现以下错误,

<--- Last few GCs --->

[78:0x29f56b0]    31470 ms: Scavenge 2041.7 (2050.3) -> 2041.9 (2051.5) MB, 9.3 / 0.0 ms  (average mu = 0.231, current mu = 0.213) allocation failure 
[78:0x29f56b0]    31547 ms: Scavenge 2042.8 (2051.5) -> 2042.5 (2047.8) MB, 14.9 / 0.0 ms  (average mu = 0.231, current mu = 0.213) allocation failure 


<--- JS stacktrace --->

==== JS stack trace =========================================

    0: ExitFrame [pc: 0x134e879]
Security context: 0x01e8352c0919 <JSObject>
...

现在,我想知道我的脚本运行时 nodejs 的 V8 引擎在运行时的内存消耗 被执行。我该怎么做?

【问题讨论】:

标签: javascript node.js


【解决方案1】:

如果你想检查全局内存去

var os = require('os');

os.freemem();
os.totalmem();

或者你想要特定的节点然后去

memwatch-next

教程click

【讨论】:

    【解决方案2】:

    如果你想使用原生 nodejs 解决方案,你可以使用 process.memoryUsage() 函数。

    您可以阅读更多关于它的信息here

    我为自己编写了一个小的帮助脚本,它返回易于阅读的格式化内存消耗(值以 MB 为单位计算):

    function getMemory() {
        return Object.entries(process.memoryUsage()).reduce((carry, [key, value]) => {
            return `${carry}${key}:${Math.round(value / 1024 / 1024 * 100) / 100}MB;`;
        }, "");
    };
    

    这个函数的输出是这样的:

    rss:282.61MB;heapTotal:239.46MB;heapUsed:129.36MB;external:22.13MB;
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-25
      • 2013-07-17
      • 1970-01-01
      • 2017-12-03
      • 2022-06-25
      • 2012-10-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多