PM2 + Node.js + Ubuntu:垃圾收集未按预期工作

问题描述 投票:0回答:1

我们的 Production Nuxt3 应用程序遇到问题。它在 ubuntu VPS 上的 PM2(集群模式) 上运行。 内存使用量随着时间的推移不断增长。

在本地运行时(Node 和 PM2 安装在 Windows 或 Mac 上),压力测试确实会填满内存,但 最终垃圾收集似乎会完成其工作

PM2 监测,压力测试后几秒和测试后一小时: before and after stress test

在 ubuntu 上运行时,内存使用量保持不变。 PM2 monit(生产服务器、Ubuntu 22.04.4 LTS、节点 v20.14.0、PM2 5.4.0)正常运行 17 小时后:

ubuntu mem usage

因此,我们必须每隔几天重新启动 PM2。 我尝试对 Node 使用 --optimize_for_size 。这减少了总体内存使用量,但没有增加。

我在使用 WSL 的 Windows PC 上重现了此行为。压力测试后,内存使用率仍然很高。所以罪魁祸首一定与 Ubuntu 有关。 有什么想法吗? 🤔

ubuntu nuxt.js garbage-collection pm2
1个回答
0
投票

您的应用程序中的某个地方可能存在内存泄漏。检查您是否没有做一些无法在服务器端进行垃圾收集的事情,例如错误使用插件(请参阅第二篇文章)、创建未清理的间隔等。

以下是一些可能有帮助的文章:

© www.soinside.com 2019 - 2024. All rights reserved.