现象
FastGPT 私有部署运行时,fastgpt 容器会输出报错日志:[ERROR] 2024-02-25 10:48:13 response error: Connection terminated due to connection timeout,完整报错堆栈包含调用数据集插入接口、团队配额检查接口的相关调用链。同时 mongo 容器会出现网络连接断开与重新接受的日志记录,如Connection ended与Connection accepted相关日志。
可能原因
根据报错日志,该问题大概率与FastGPT服务与MongoDB的网络连接或超时配置有关。报错堆栈显示请求链路涉及数据集数据插入与团队配额检查的API接口,可能存在网络延迟过高、连接超时阈值设置过短,或MongoDB连接池配置不足的情况。另外也需确认容器间网络连通性是否正常。
排查步骤
- 进入FastGPT容器,执行ping命令测试与MongoDB服务的网络连通性,命令示例:
ping <mongo服务名或容器IP>。 - 查看FastGPT的MongoDB连接配置参数,确认连接超时、socket超时等配置是否符合实际网络环境。
- 查看MongoDB容器的日志,确认是否存在大量连接断开、连接数超限的记录,对应issue中mongo日志显示有网络连接相关事件。
- 查看当前FastGPT服务的请求负载,确认是否存在并发过高导致连接耗尽的情况。
解决与验证
- 若网络连通性异常,修复容器间网络配置,确保FastGPT可以正常访问MongoDB服务。
- 调整MongoDB连接超时相关配置,适当延长超时阈值,需按实际环境确认具体参数值。
- 若MongoDB连接数不足,调整MongoDB的最大连接数配置,或优化FastGPT的连接池大小。
- 验证方式:重新触发引发报错的场景操作,确认fastgpt容器不再输出该连接超时报错,且API接口可以正常返回结果。