nodejs进程崩溃导致内存不足时如何理解日志

时间:2018-08-03 21:42:52

标签: javascript node.js memory-management garbage-collection v8

我的节点服务器由于以下日志而崩溃。

.gitignore

我知道Mark-sweep是GC算法。之后,我们如何解释这些数字“ 1379.9(1434.3)-> 1379.0(1434.3)MB,1486.7 / 0.0 ms”?

1 个答案:

答案 0 :(得分:3)

这些是在GC标记扫描结束时报告的度量标准(仔细检查,标记要删除,然后扫描标记的项目)。这两个数字是对象总大小和内存总大小的开始和结束。

因此,一开始您的对象总大小为1379.9,而总内存大小为1434.4 MB。 最后,您的总对象大小为1379.0,总内存大小为1434.3 MB。因此释放了0.9 MB。

我不确定100%的时间安排,但我相信第一个是花费的总外部时间(这似乎是某些“范围”中花费的总时间)

这是您想要的源代码: https://github.com/nodejs/node/blob/de732725d8ae232d7b6d56927ea8bef471d5bf1d/deps/v8/src/heap/gc-tracer.cc#L481

关于外部花费的时间: https://github.com/nodejs/node/blob/de732725d8ae232d7b6d56927ea8bef471d5bf1d/deps/v8/src/heap/gc-tracer.h#L368