本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
选择合适的配置
在控制台体验中, ElastiCache 提供了一种根据矢量工作负载的内存和 CPU 要求选择正确的实例类型的简便方法。
内存消耗
内存消耗基于向量数、维度数、M 值和非向量数据量,例如与向量关联的元数据或实例中存储的其他数据。所需的总存储空间是实际向量数据所需空间和向量索引所需空间的组合。计算向量数据所需空间时,需要测量在 HASH 或 JSON 数据结构中存储向量所需的实际容量,以及为实现优化内存分配而需向最近的内存块增加的额外开销。每个向量索引都使用对存储在这些数据结构中的向量数据的引用,以及索引中向量的附加副本。建议为索引占用的额外空间做好计划。
向量的数量取决于您将数据表示为向量的方式。例如,您可以选择将单个文档表示成几个块,其中每个块表示一个向量。或者,您可以选择将整个文档表示为单个向量。向量的维数取决于您选择的嵌入模型。例如,如果您选择使用AWS泰坦嵌入模型,则维度数将为 1536。请注意,您应该测试该实例类型以确保它符合您的要求。
扩展工作负载
向量搜索支持所有三种扩缩方法:水平、垂直和副本。在扩缩容量时,向量搜索的行为就像常规 Valkey 一样,也就是说,增加单个节点的内存(垂直扩缩)或增加节点数量(水平扩缩)将增加整体容量。在集群模式下,可以将 FT.CREATE 命令发送到集群的任何主节点,系统会自动将新的索引定义分发给所有集群成员。
但是,从性能的角度来看,向量搜索的行为与常规 Valkey 截然不同。矢量搜索的多线程实现意味着查询吞吐 CPUs 量和摄取吞吐量都将呈线性增长。水平扩缩会使摄取吞吐量实现线性增长,但可能会降低查询吞吐量。如果需要额外的查询吞吐量,则需要通过副本或其他副本进行扩展。 CPUs