我们有运行 3 个不同 node.js 应用程序的测试服务器。每个应用程序都使用相同的 MongoDB 数据库测试实例,该测试实例也在同一台服务器上运行。因此,在任何给定的时刻,我们最多有 3 个不同的开放连接到 mongodb 服务器。
问题是,在每次代码部署(基本上是:杀死当前正在运行的进程、代码更新和启动新进程)之后,我在服务器上看到了新进程(单个进程的线程),它在 htop 中显示为/usr/bin/mongod --config /etc/mongodb.conf
. 因此,有时我们必须重新启动测试服务器,因为这样的未使用线程太多了,这使得 mongod 进程占用了所有 RAM。
我不确定为什么会发生这种情况并正在寻找解决此问题的解决方案。
我的假设是,如果我们简单地终止 node.js 进程,则连接(以及因此与此连接相关的线程)以某种方式保持活动状态,因此我们应该通过关闭数据库连接优雅地关闭它,而不是终止 nodejs 进程。