本文介绍创建索引时,如何根据自己的数据量和检索量需求,选择合适的CU资源数量。
CU资源:CU是衡量计算资源的单位,在向量数据库中,1 CU 代表 1 核 CPU 和 8GB 内存。CPU越多,能够承载QPS(每秒查询量)更大,内存越多,能够存储的向量就越多;
CU的计算公式:CU = max(CPU, 内存/8),即根据实际内存和CPU的消耗取最大来作为所需的CU数量;
内存自动扩缩容:数据量变多时会导致内存超额,VikingDB将自动扩容,内存减少后也会自动缩容,最小为用户手动配置的CU配额(CPU自动扩容暂不支持,即当实际QPS超过CPU能力后,不会自动增加CPU数量)。
下方为参考示例:
CU数量 | CPU数量 | 内存 | 预估最大向量条数 | 预估最大向量条数 |
---|---|---|---|---|
1 | 1 | 8 GB | 2,300,000 | 1,150,000 |
2 | 2 | 16 GB | 4,600,000 | 2,300,000 |
4 | 4 | 32 GB | 9,200,000 | 4,600,000 |
8 | 8 | 64 GB | 18,400,000 | 9,200,000 |
16 | 16 | 128 GB | 36,800,000 | 18,400,000 |
32 | 32 | 256 GB | 73,600,000 | 36,800,000 |
64 | 64 | 512 GB | 147,200,000 | 73,600,000 |
128 | 128 | 1024 GB | 294,400,000 | 147,200,000 |
下方为参考示例:
CU量 | CPU数量 | 内存 | 预估最大QPS |
---|---|---|---|
1 | 1 | 8 GB | 642 |
8 | 8 | 64 GB | 3370 |
CU量 | CPU数量 | 内存 | 预估最大QPS |
---|---|---|---|
32 | 32 | 256 | 4562 |
64 | 64 | 512 | 9124 |
需要注意的是,在固定的 CU 资源下,向量存储量与检索性能(QPS)往往此消彼长:当您存储的向量数量增加时,系统需要处理的数据规模也更大,查询速度可能会随之下降,无法达到理论最大性能。
因此,在规划向量数量和预期 QPS 时,要综合考虑业务需求和资源配比,找到数据存储与检索性能之间的平衡点。