跳到主要内容

平衡查询负载

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

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

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

检查段信息

获取您希望传输的已封存段的segmentID以及您希望将段传输到的查询节点的nodeID

from pymilvus import utility
utility.get_query_segment_info("book")
// 此功能正在GO客户端上积极开发中。
milvusClient.getQuerySegmentInfo(
GetQuerySegmentInfoParam.newBuilder()
.withCollectionName("book")
.build()
);
await getQuerySegmentInfo({
collectionName: "book",
});
show query_segment -c book
参数描述
collection_name要检查段信息的集合名称。
参数描述
collectionName要检查段信息的集合名称。
参数描述
CollectionName要检查段信息的集合名称。
选项描述
-c要检查段信息的集合名称。

传输段

传输带有当前查询节点和新查询节点的segmentIDnodeID的已封存段。

utility.load_balance(
src_node_id=3,
dst_node_ids=[4],
sealed_segment_ids=[431067441441538050]
)
// 此功能正在GO客户端上积极开发中。
milvusClient.loadBalance(
LoadBalanceParam.newBuilder()
.withSourceNodeID(3L)
.addDestinationNodeID(4L)
.addSegmentID(431067441441538050L)
.build()
);
await loadBalance({
src_nodeID: 3,
dst_nodeIDs: [4],
sealed_segmentIDs: [431067441441538050]
});
load_balance -s 3 -d 4 -ss 431067441441538050
ParameterDescription
src_node_id要从中转移片段的查询节点的ID。
dst_node_ids (可选)要将片段转移至的查询节点的ID。如果此参数留空,Milvus会自动将片段转移至其他查询节点。
sealed_segment_ids (可选)要转移的片段的ID。如果此参数留空,Milvus会自动将源查询节点中的所有密封片段转移至其他查询节点。
ParameterDescription
src_nodeID要从中转移片段的查询节点的ID。
dst_nodeIDs (可选)要将片段转移至的查询节点的ID。如果此参数留空,Milvus会自动将片段转移至其他查询节点。
sealed_segmentIDs (可选)要转移的片段的ID。如果此参数留空,Milvus会自动将源查询节点中的所有密封片段转移至其他查询节点。
ParameterDescription
SourceNodeID要从中转移片段的查询节点的ID。
DestinationNodeID (可选)要将片段转移至的查询节点的ID。如果此参数留空,Milvus会自动将片段转移至其他查询节点。
SegmentID (可选)要转移的片段的ID。如果此参数留空,Milvus会自动将源查询节点中的所有密封片段转移至其他查询节点。
OptionDescription
-s要从中转移片段的查询节点的ID。
-d (多个)要将片段转移至的查询节点的ID。
-ss (多个)要转移的片段的ID。

接下来做什么