收集数量限制
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 单元总数(计算公式为shards × partitions )可按如下方式确定:
60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960
在本例中,计算得出的 960 个 Collection 单元总数代表了当前的使用情况。maxGeneralCapacity 定义了实例可支持的最大 Collection 单位数,默认设置为65536 。这意味着实例最多可容纳 65,536 个 Collection 单元。如果总数超过此限制,系统将显示以下错误信息:
failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:
要避免此错误,可以减少现有或新收集中的分片或 Partition 数量,删除某些收集,或增加maxGeneralCapacity 值。