现象
FastGPT v4.9.3部署后,每分钟日志会出现mongo disconnected提示,同时伴随Vector Queue、QA Queue任务完成的日志。MongoDB的db.serverStatus().connections.totalCreated指标持续增长,约23分钟后应用会崩溃重启。
可能原因
该问题的核心原因为FastGPT v4.9.3的队列任务逻辑,在每次执行Vector Queue、QA Queue任务后主动断开MongoDB连接,未复用配置的连接池,导致连接创建次数持续增加。
排查步骤
- 查看FastGPT应用日志,确认每分钟是否出现
mongo disconnected日志,以及Vector Queue、QA Queue任务完成的提示。 - 连接MongoDB数据库,执行
db.serverStatus().connections.totalCreated命令,观察该指标是否随时间持续增长。 - 检查MongoDB连接字符串配置,确认
maxPoolSize、minPoolSize、maxIdleTimeMS等连接池相关参数是否正确配置。
解决与验证
- 修复队列任务的连接管理逻辑,确保任务执行完成后不主动断开MongoDB连接,复用现有连接池。
- 按照原配置重新部署FastGPT,保留正确的MongoDB连接池参数(如
maxPoolSize=500、minPoolSize=20等)。 - 重新运行应用,观察日志是否不再出现
mongo disconnected提示。 - 再次执行
db.serverStatus().connections.totalCreated命令,确认该指标不再随时间持续增长。