NodeJS:为什么pm2列表显示内存不断增加?

Sat*_*ish 5 javascript node.js

我正在使用带有NodeJS的HAPI.JS框架并创建了一个代理.认为代理意味着我只是在redis中维护会话.除此之外,我没有在代码中做任何事情.可能是唯一的事情是我使用setInterval来记录我的process.memoryUsage()每3分钟.

在此输入图像描述

我的问题:

  1. 为什么我的记忆会不断增加?
  2. 它会下降吗?
  3. 这是因为setInterval继续记录进程使用情况吗?
  4. 是否由于每个请求和响应的控制台记录而发生这种情况?
  5. 我的Redis数据库一直打开,直到我的服务器崩溃,这导致了这个?
  6. 我是否需要使用过程管理器,如新遗物或强循环来识别这个?
  7. 那么这段记忆会持续多久,在某些时候它必须停止(我想知道那是什么点?)
  8. 我使用池化概念使用MSSQL事务的sequelize?汇集会这样吗?

PS我是节点JS的新手.

pky*_*eck 7

  1. 为什么我的记忆会不断增加?

你有内存泄漏

  1. 它会下降吗?

有时GC开始并清理一些东西(没有泄漏)

  1. 这是因为setInterval继续记录进程使用情况吗?

通常不会,但没有看到代码,我不能肯定这样说

  1. 是否由于每个请求和响应的控制台记录而发生这种情况?

通常不会,但没有看到代码,我不能肯定这样说

  1. 我的Redis数据库一直打开,直到我的服务器崩溃,这导致了这个?

应该不是问题.

  1. 我是否需要像新遗物或强力循环一样使用过程管理器来识别这个?

这是一种方法......但也有其他方法.

  1. 那么这段记忆会持续多久,在某些时候它必须停止(我想知道那是什么点?)

取决于服务器设置.RAM多少+其他正在运行的等等

  1. 我使用池化概念使用MSSQL事务的sequelize?汇集会这样吗?

通常不会,但没有看到代码,我不能肯定这样说

也许这篇文章可以帮助您找到泄漏:https:
//www.nearform.com/blog/how-to-self-detect-a-memory-leak-in-node/

  • 但是没有看到代码我不能肯定地说这个——野蛮人哈哈 (3认同)