gpt4 book ai didi

node.js - NodeJS、PM2、GC、Grafana - 更好地理解

转载 作者:太空宇宙 更新时间:2023-11-04 02:08:27 25 4
gpt4 key购买 nike

我想更好地理解 Nodejs/V8 中的 GC 过程。

您能否为以下问题提供一些信息:

  • 当GC被触发时,这是否会阻塞node js的事件循环?

  • GC 是在它自己的进程中运行还是只是事件循环的子方法?

  • 当通过 Pm2(集群模式)生成 NodeJS 进程时,实例是否确实有自己的进程,还是 GC 之间共享实例?

  • 为了记录目的,我使用 Grafana( https://github.com/RuntimeTools/appmetrics-statsd ),有人可以吗解释差异\有关这些仪表的更多详细信息:

    gc.size JavaScript 堆的大小(以字节为单位)。

    gc.used JavaScript 堆上使用的内存量(以字节为单位)。

Memory usage

  • 是否存在 GC 未释放与压力测试相关的内存 (gc.used) 的情况?

这些问题与我当前面临的问题相关。 GC使用的内存不断增加,并且不释放任何内存(经典内存泄漏)。问题是它只有在我们有很多请求时才会出现。

我尝试使用 max-old-space-size 来避免 pm2 重新启动,但看起来 GC 不再释放,整个应用程序变得非常慢......

有什么想法吗?

最佳答案

好吧,有些问题,我已经弄清楚了:

gc.size = 总堆大小(https://nodejs.org/api/v8.html -> getHeapStatistics),

gc.used =used_heap_size

看起来不错,当 gc_size 达到稳定水平时,它再也不会下降 =>

Memory usage doesn't decrease in node.js? What's going on?

关于node.js - NodeJS、PM2、GC、Grafana - 更好地理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43326316/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com