限制收藏集數量
一個 Milvus 實例最多允許 65,536 個集合。但是,過多的收藏集可能會導致性能問題。因此,建議限制在 Milvus 實例中建立的收藏集數量。
本指南提供如何設定 Milvus 實例中收藏集數量限制的說明。
設定會因您安裝 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
quotaAndLimits:
limits:
maxCollectionNum: 65536
maxCollectionNumPerDB: 65536
若要變更收集限制,您需要一併修改所有三個參數:
| 參數 | 說明 | 預設值 |
|---|---|---|
rootCoord.maxGeneralCapacity | 目前實例所能容納的最大集合單位 (分片 × 區塊) 數量。 | 65536 |
quotaAndLimits.limits.maxCollectionNum | 目前實例中所有資料庫允許的最大集合數。 | 65536 |
quotaAndLimits.limits.maxCollectionNumPerDB | 單一資料庫中允許的最大集合數量。 | 65536 |
例如,將限制增加到 200,000 個集合:
rootCoord:
maxGeneralCapacity: 200000
quotaAndLimits:
limits:
maxCollectionNum: 200000
maxCollectionNumPerDB: 200000
只設定maxGeneralCapacity 而不同時調整maxCollectionNum 和maxCollectionNumPerDB 將不會生效。必須將三個參數都設定為相同值或更高,才能增加收藏集限制。
計算收藏集數量
在一個集合中,您可以設定多個分片和分區。分片是用於在多個資料節點之間分配資料寫入作業的邏輯單位。分區是邏輯單位,用於透過僅載入集合資料的子集來提高資料擷取效率。計算當前 Milvus 實例中的集合數量時,您還需要計算分片和分區。
例如,假設您已經建立了100 個集合,其中60 個集合有2個分塊和4 個分區,其餘40 個集合有1個分塊和12 個分區。集合單元的總數(計算方式為shards × partitions )可如下確定:
60 (collections) x 2 (shards) x 4 (partitions) + 40 (collections) x 1 (shard) x 12 (partitions) = 960
在此範例中,計算出的 960 個集合單位總數代表目前的使用量。maxGeneralCapacity 定義了實體可支援的最大集合單位數量,預設值為65536 。這表示該實體最多可容納 65,536 個收集單元。如果總數超過此限制,系統會顯示以下錯誤訊息:
failed checking constraint: sum_collections(parition*shard) exceeding the max general capacity:
若要避免此錯誤訊息,您可以減少現有或新集合中的分片或分割數量、刪除某些集合,或透過同時修改maxGeneralCapacity 、maxCollectionNum 和maxCollectionNumPerDB 來增加集合限制。