# 向量索引容量规划

在准备创建一个 MyScale 集群时,选择正确的配置对于满足您的向量容量和性能需求至关重要。

配置 MyScale 集群非常简单,只需要调整两个关键参数:pod 大小和副本数量。这些参数可以根据需求轻松调整。

集群配置

# 考虑因素

为了确定最佳的 MyScale 集群设置,请考虑以下因素:

  • 向量索引类型
  • 向量数量
  • 向量维度
  • 每秒查询次数(QPS)要求

我们推荐使用 MyScale 的 MSTG 算法进行向量索引,该算法以其卓越的性能和向量密度而闻名。我们的容量和性能指南是基于 MSTG 的(请参阅我们的博客文章 (opens new window)获取详细的基准测试结果)。

其他元数据对向量容量的影响很小,但如果查询包含附加的元数据,可能会影响 QPS。为了在这种情况下优化 QPS,MyScale 提供了高效的过滤搜索 (opens new window)

# Pod 大小

MyScale 结合了算法创新(如 MSTG)和系统工程,实现了高向量密度和性能。我们提供了一个单一的 pod 类型,大小选项如 x4 可以提供 x1 pod 的四倍容量和 CPU 性能。

可用的 pod 大小有 x1x2x4x8x16x32。在我们的定价页面 (opens new window)上使用我们的价格估算器来找到最适合您需求的 pod 大小。

价格估算器

以下是 x1 pod 的一些估计容量和性能基准。

# 容量

表 1:每个 Pod 不同维度向量的最大容量

Pod 大小 维度 最大容量
x1 512 7,500,000
768 5,000,000
1024 3,750,000
1536 2,500,000

选择更大的 pod 大小可以增加向量容量。

# QPS

表 2:基于 top_k 的 5M 个 768 维向量的 QPS 估计*

Pod 大小 top_k 10 top_k 100
x1 152 117

*基于 MSTG 索引,alpha=3(默认设置)。请参阅完整的基准测试 (opens new window)获取更多信息。

通过添加副本来提高 QPS。

# 副本

副本可以增强集群的可用性和 QPS。一个集群的总 QPS 大致等于单个 pod 的 QPS 乘以副本数量。请注意,副本不会增加向量容量。

# 示例

# 示例 1:ChatData 应用

在我们的 ChatData (opens new window) 应用中,我们管理一个包含大约 225 万个 768 维向量的 arXiv 论文数据集。一个单独的 x1 pod,支持这个维度下最多 5 百万个向量,足以满足这个数据集的需求。

# 示例 2:大规模图像搜索

考虑一个需要 8000 万个 512 维向量的大规模图像搜索应用。根据容量部分,需要一个 x16 pod。为了提高可用性和 QPS,可以将副本数量增加到 2 或 3。

为什么选择 `x16` Pod?

一个 x1 pod 支持 512 维的 750 万个向量。考虑到需要 8000 万个向量的要求,x16 是我们的 x1x2x4x8x16x32 pod 大小中合适的选择。

# 可视化使用情况

集群监控页面显示了一个图表,显示加载的向量索引相对于总可用内存的内存使用情况。这个工具可以帮助用户跟踪向量使用情况,并在达到容量限制之前计划 pod 大小升级。

加载的向量索引内存百分比

我们使用 LRU 算法来管理内存中的向量索引。超过 pod 的向量限制会导致一些索引从内存中卸载。重新加载这些索引以进行后续搜索可能会降低 QPS 或增加查询延迟。在这种情况下,请参考上述图表,并考虑相应地增加 pod 大小。