故障排查GitHub issue2 分钟阅读排错/错误码

FastGPT部署后问答响应缓慢的优化与排查方法

Docker部署的FastGPT,因知识库文件过多或过时,数据库索引数量达100w+,导致问答响应时间达到20秒左右,影响正常使用。

现象

Docker部署的FastGPT,因知识库文件过多或过时,数据库索引数量达100w+,导致问答响应时间达到20秒左右,影响正常使用。

可能原因

  1. 知识库中存在大量无用或过时文件,导致数据库生成的索引资源占用过高;
  2. 数据库索引总数量过大,超出当前系统的资源承载能力;
  3. PostgreSQL的内存配置不足,无法支撑大索引量的查询操作,导致响应延迟。

排查步骤

  1. 统计当前知识库的文件数量与数据库索引的总数量,确认资源占用情况;
  2. 查看PostgreSQL的内存配置参数,特别是share_buffer相关设置;
  3. 梳理知识库内容,确认可删除的无用或过时文件。

解决与验证

首先,删除无用或过时的知识库文件是可行的优化方式,可直接减少索引生成的基础数据量。其次,PostgreSQL索引不会主动重建,需手动执行重建操作以清理冗余索引。另外,需调整PostgreSQL的内存配置:单条PG索引约占4KB,100w数据的索引总占用约3.81GB,因此sharebuffer参数需至少设置为4GB;由于sharebuffer一般占PostgreSQL内存的1/4~1/3,因此PostgreSQL需单独分配至少12GB的内存。调整配置并完成索引重建后,可通过发起多次问答请求测试,验证响应时间是否恢复至正常范围。

来源: FastGPT GitHub issue #3931