启用 AI 搜索拖垮了我的服务器

我昨晚启用了“AI 嵌入启用”选项,回填(backfill)在后台进行。今天我启用了“AI 嵌入语义搜索启用”选项,CPU 立即持续达到 100%,并且 sidekiq 队列积压严重。服务器上的搜索完全停止工作。

我禁用了语义搜索,几分钟内服务器 CPU 就恢复正常,并且所有队列都已清空。

那么,是否有其他方法可以做到这一点,还是说这是预期的行为?

2 个赞

我很想了解更多关于您自托管时的“硬件”配置信息;我曾考虑在我的服务器上做同样的事情,但不确定会产生什么影响。这从侧面告诉我,我应该再等等,或者制定一个更好的计划。

Jobs::GenerateEmbeddings 那次耗时几秒是预期的,因为它会向嵌入服务发出 API 调用以获取数据。该图表是正常的,它只是显示某件事需要一段时间,实际上是云中的另一个 GPU 在执行工作。

CPU 占用率很高则非常出乎意料,也许您的 PG(PostgreSQL)设置开始时资源极度紧张,连续插入大约 1000 个数字就足以使其性能下降。

我们需要更多数据来帮助诊断,服务器的规格是什么?实际的 CPU 图表显示了什么,哪个进程占用了 CPU,您使用的是哪个嵌入服务,等等……

我看到您只分享了侧助(sidekick)作业持续时间的图表,它显示启用嵌入(embeddings)后,Discourse 正在正确地回填它们。

您能分享更多关于您的设置信息吗?嵌入提供商是什么?是第三方 API 还是您自己托管的?您有多少个主题?数据库(DB)规格如何?

我使用的是 16 GB 内存/4 个 Intel vCPU 的 DO 服务器。正在使用 OpenAI 的 text-embedding-3-small

当启用语义搜索时,CPU 利用率通常在 50% 或更低。我有大约 250 万帖子和 25 万个主题。我还没有为私信启用嵌入,否则将增加 100 万个帖子和 10 万个主题。

1 个赞