收集数量限制
Milvus 实例最多允许 65,536 个 Collection。不过,过多的 Collection 可能会导致性能问题。因此,建议限制在 Milvus 实例中创建的 Collection 数量。
本指南说明了如何设置 Milvus 实例中的 Collection 数量限制。
配置因安装 Milvus 实例的方式而异。
-
对于使用 Helm Charts 安装的 Milvus 实例
将配置添加到
values.yaml文件的config部分。有关详细信息,请参阅使用 Helm Charts 配置 Milvus。 -
对于使用 Docker Compose 安装的 Milvus 实例
将配置添加到用于启动 Milvus 实例的
milvus.yaml文件中。有关详细信息,请参阅使用 Docker Compose 配置 Milvus。 -
对于使用 Operator 安装的 Milvus 实例
将配置添加到
Milvus自定义资源的spec.components部分。有关详情,请参阅使用 Operator 配置 Milvus。
配置选项
rootCoord:
maxGeneralCapacity: 65536
maxGeneralCapacity 参数设置当前 Milvus 实例可容纳的最大 Collection 数量。默认值为65536 。
计算 Collection 的数量
在一个 Collection 中,可以设置多个分片和 Partition。分片是用于在多个数据节点之间分配数据写入操作的逻辑单元。Partition 是逻辑单元,用于通过只加载 Collection 数据的子集来提高数据检索效率。在计算当前 Milvus 实例中的 Collection 数量时,还需要计算分片和 Partition 的数量。
例如,假设您已经创建了100 个Collection,其中60 个Collection 有2个分块和4 个Partition,其余40 个Collection 有1 个分块和12 个Partition。当前的 Collection 数量可以计算如下:
60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960
在上例中,您已经使用了默认限制中的960 个。现在如果想创建一个有4个 Partition 和20 个Partition 的新 Collection,就会收到以下错误提示,因为 Collection 的总数超过了最大容量:
failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:
要避免此错误,可以减少现有或新 Collection 中的分片或 Partition 数量,删除某些 Collection,或者增加maxGeneralCapacity 值。