Collection 数量限制
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。分片是用于在多个 DataNode 之间分配数据写入操作的逻辑单元。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 值。