id: load_balance.md related_key: Load balance

summary: Learn how to balance query load in Milvus.

负载均衡

本主题介绍如何平衡 Milvus 中的查询负载。

Milvus 默认支持自动负载均衡。你可以配置 Milvus 以启用或禁用自动负载均衡。通过指定 queryCoord.balanceIntervalSeconds, queryCoord.overloadedMemoryThresholdPercentagequeryCoord.memoryUsageMaxDifferencePercentage,你可以更改触发自动负载均衡的阈值。

如果禁用自动负载均衡,你仍然可以手动平衡负载。

查看 segment 信息

获取输入 collection 的 sealed segment 的 segmentID 和 query node 的 nodeID

{{fragments/multiple_code.md}}

  1. from pymilvus import utility
  2. utility.get_query_segment_info("book")
  1. // This function is under active development on the GO client.
  1. milvusClient.getQuerySegmentInfo(
  2. GetQuerySegmentInfoParam.newBuilder()
  3. .withCollectionName("book")
  4. .build());
  1. await dataManager.getQuerySegmentInfo({
  2. collectionName: "book",
  3. });
  1. show query_segment -c book
参数 说明
collection_name 用于查看 segment 信息的 collection 名称。
参数 说明
collectionName 用于查看 segment 信息的 collection 名称。
参数 说明
CollectionName 用于查看 segment 信息的 collection 名称。
选项 说明
-c 用于查看 segment 信息的 collection 名称。

迁移 segment

使用当前 query node 和新 query node 的 segmentIDnodeID 迁移 sealed segment 。

{{fragments/multiple_code.md}}

  1. utility.load_balance(
  2. src_node_id=3,
  3. dst_node_ids=[4],
  4. sealed_segment_ids=[431067441441538050]
  5. )
  1. // This function is under active development on the GO client.
  1. milvusClient.loadBalance(LoadBalanceParam.newBuilder()
  2. .withSourceNodeID(3L)
  3. .addDestinationNodeID(4L)
  4. .addSegmentID(431067441441538050L)
  5. .build());
  1. await dataManager.loadBalance({
  2. src_nodeID: 3,
  3. dst_nodeIDs: [4],
  4. sealed_segmentIDs: [431067441441538050]
  5. });
  1. load_balance -s 3 -d 4 -ss 431067441441538050
参数 说明
src_node_id 源 segment query node 的 ID 。
dst_node_ids (Optional) 目标 segment query node 的 ID 。如果该参数为空,Milvus 会自动将 segment 转移到其他 query node 。
sealed_segment_ids (Optional) 要转移的 segment ID 。如果该参数为空,Milvus 会自动将源 query node 中的所有 sealed segment 传输到其他 query node 。
参数 说明
src_nodeID 源 segment query node 的 ID 。
dst_nodeIDs (Optional) 目标 segment query node 的 ID 。如果该参数为空,Milvus 会自动将 segment 转移到其他 query node 。
sealed_segmentIDs (Optional) 要转移的 segment ID 。如果该参数为空,Milvus 会自动将源 query node 中的所有 sealed segment 传输到其他 query node 。
参数 说明
SourceNodeID 源 segment query node 的 ID 。
DestinationNodeID (Optional) 目标 segment query node 的 ID 。如果该参数为空,Milvus 会自动将 segment 转移到其他 query node 。
SegmentID (Optional) 要转移的 segment ID 。如果该参数为空,Milvus 会自动将源 query node 中的所有 sealed segment 传输到其他 query node 。
选项 说明
-s 源 segment query node 的 ID 。
-d (Multiple) 目标 segment query node 的 ID 。
-ss (Multiple) 要转移的 segment ID 。

更多内容