限制收藏集數量

一個 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 而不同時調整maxCollectionNummaxCollectionNumPerDB 將不會生效。必須將三個參數都設定為相同值或更高,才能增加收藏集限制。

計算收藏集數量

在一個集合中,您可以設定多個分片和分區。分片是用於在多個資料節點之間分配資料寫入作業的邏輯單位。分區是邏輯單位,用於透過僅載入集合資料的子集來提高資料擷取效率。計算當前 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:

若要避免此錯誤訊息,您可以減少現有或新集合中的分片或分割數量、刪除某些集合,或透過同時修改maxGeneralCapacitymaxCollectionNummaxCollectionNumPerDB 來增加集合限制。

免費嘗試托管的 Milvus

Zilliz Cloud 無縫接入,由 Milvus 提供動力,速度提升 10 倍。

開始使用
反饋

這個頁面有幫助嗎?