常见问题解答:数据库优化

如何减少内存使用?

内存使用的主要来源是向量数据。有几种方法可以解决这个问题:

  • 配置量化以减少向量的内存使用。
  • 配置磁盘上的向量存储

方法的选择取决于您的需求。 阅读更多关于配置最佳使用Qdrant的信息。

如何选择机器配置?

Qdrant 在资源消耗方面主要有两种使用场景:

  • 性能优化 – 当您需要尽可能快速(大量)提供向量搜索时。在这种情况下,您需要尽可能多地将向量数据存储在RAM中。使用我们的计算器来估算所需的RAM。
  • 存储优化 – 当您需要存储大量向量并通过牺牲一些搜索速度来最小化成本时。在这种情况下,请注意磁盘速度。更多信息请参阅关于内存消耗的文章。

我已配置了磁盘向量存储,但内存使用率仍然很高。为什么?

首先,由tophtop报告的内存使用指标可能会产生误导。它们并没有显示运行服务所需的最小内存量。 如果RSS内存使用量为10 GB,这并不意味着它在具有8 GB RAM的机器上无法运行。

Qdrant 使用了许多技术来减少搜索延迟,包括将磁盘数据缓存到 RAM 中以及从磁盘预加载数据到 RAM 中。 因此,Qdrant 进程可能会使用比运行服务所需的最小内存更多的内存。

未使用的RAM是浪费的RAM

如果你想限制服务的内存使用,我们建议使用Docker中的限制或Kubernetes。

我的请求非常慢或超时。我该怎么办?

可能有以下几个原因:

  • 使用没有有效载荷索引的过滤器 – 如果您正在使用过滤器进行搜索,但没有有效载荷索引,Qdrant 将不得不从磁盘加载整个有效载荷数据以检查过滤条件。请确保您已正确配置了有效载荷索引
  • 使用慢速磁盘的磁盘向量存储 – 如果您正在使用磁盘向量存储,请确保您有足够快的磁盘。我们建议使用至少具有50k IOPS的本地SSD。在关于内存消耗的文章中了解更多关于磁盘速度对搜索延迟的影响。
  • 大限制或非最佳查询参数 – 大的限制或偏移量可能会导致显著的性能下降。请密切关注与默认值显著不同的查询/集合参数。它们可能是性能问题的原因。
这个页面有用吗?

感谢您的反馈!🙏

我们很抱歉听到这个消息。😔 你可以在GitHub上编辑这个页面,或者创建一个GitHub问题。