重新限流
您可以使用以下 API 动态更改已运行的 _reindex
、_update_by_query
或 _delete_by_query
操作的 requests_per_second
。
端点
POST /_delete_by_query/{task_id}/_rethrottle
POST /_reindex/{task_id}/_rethrottle
POST /_update_by_query/{task_id}/_rethrottle
路径参数
参数 | 数据类型 | 描述 |
---|---|---|
task_id | 字符串 | 要重新限流的运行中任务的唯一标识符。 |
查询参数
参数 | 数据类型 | 描述 |
---|---|---|
requests_per_second | 浮点型 | 要应用于任务的新限流值。使用 -1 禁用限流。可选。 |
示例请求:重新限流运行中的按查询删除任务
POST /_delete_by_query/<YOUR_TASK_ID>/_rethrottle?requests_per_second=10
示例请求:重新限流运行中的重新索引任务
POST /_reindex/<YOUR_TASK_ID>/_rethrottle?requests_per_second=20
示例请求:重新限流运行中的按查询更新任务
POST /_update_by_query/<YOUR_TASK_ID>/_rethrottle?requests_per_second=5
示例响应
以下响应提供了关于活动 update_by_query
任务的详细信息
{
"nodes": {
"bvv8SKpiRhOhF9_Bu8gZ7w": {
"name": "opensearch-node1",
"transport_address": "172.18.0.4:9300",
"host": "172.18.0.4",
"ip": "172.18.0.4:9300",
"roles": [
"cluster_manager",
"data",
"ingest",
"remote_cluster_client"
],
"attributes": {
"shard_indexing_pressure_enabled": "true"
},
"tasks": {
"bvv8SKpiRhOhF9_Bu8gZ7w:640": {
"node": "bvv8SKpiRhOhF9_Bu8gZ7w",
"id": 640,
"type": "transport",
"action": "indices:data/write/update/byquery",
"status": {
"total": 4785,
"updated": 1000,
"created": 0,
"deleted": 0,
"batches": 1,
"version_conflicts": 0,
"noops": 0,
"retries": {
"bulk": 0,
"search": 0
},
"throttled_millis": 0,
"requests_per_second": 50,
"throttled_until_millis": 2146
},
"description": "update-by-query [test-rethrottle] updated with Script{type=inline, lang='painless', idOrCode='ctx._source.new_field = 'updated'', options={}, params={}}",
"start_time_in_millis": 1751310547697,
"running_time_in_nanos": 9567425129,
"cancellable": true,
"cancelled": false,
"headers": {
"X-Opaque-Id": "1b911516-44cd-4920-8c1e-79368ea7cdfd"
},
"resource_stats": {
"average": {
"cpu_time_in_nanos": 0,
"memory_in_bytes": 0
},
"total": {
"cpu_time_in_nanos": 0,
"memory_in_bytes": 0
},
"min": {
"cpu_time_in_nanos": 0,
"memory_in_bytes": 0
},
"max": {
"cpu_time_in_nanos": 0,
"memory_in_bytes": 0
},
"thread_info": {
"thread_executions": 0,
"active_threads": 0
}
}
}
}
}
}
}
响应正文字段
响应提供了关于重新限流操作的详细任务和节点级别信息。
字段 | 数据类型 | 描述 |
---|---|---|
节点 | 对象 | 节点 ID 到每个节点上任务详细信息的映射。 |
nodes.<node_id>.name | 字符串 | 任务运行所在的节点名称。 |
nodes.<node_id>.transport_address | 字符串 | 节点的传输地址。 |
nodes.<node_id>.host | 字符串 | 主机 IP 地址。 |
nodes.<node_id>.ip | 字符串 | IP 地址和端口。 |
nodes.<node_id>.roles | 数组 | 分配给节点的角色。 |
nodes.<node_id>.attributes | 对象 | 节点级别属性。 |
nodes.<node_id>.tasks | 对象 | 任务 ID 到每个任务详细信息的映射。 |
nodes.<node_id>.tasks.<task_id>.type | 字符串 | 任务类型,例如 transport 。 |
nodes.<node_id>.tasks.<task_id>.action | 字符串 | 正在执行的特定操作(例如,reindex )。 |
nodes.<node_id>.tasks.<task_id>.status | 对象 | 任务的当前状态。 |
nodes.<node_id>.tasks.<task_id>.status.total | 整数 | 要处理的文档总数。 |
nodes.<node_id>.tasks.<task_id>.status.created | 整数 | 已创建的文档数。 |
nodes.<node_id>.tasks.<task_id>.status.updated | 整数 | 已更新的文档数。 |
nodes.<node_id>.tasks.<task_id>.status.deleted | 整数 | 已删除的文档数。 |
nodes.<node_id>.tasks.<task_id>.status.batches | 整数 | 已处理的批次数。 |
nodes.<node_id>.tasks.<task_id>.status.version_conflicts | 整数 | 版本冲突数。 |
nodes.<node_id>.tasks.<task_id>.status.noops | 整数 | 无操作更新数。 |
nodes.<node_id>.tasks.<task_id>.status.retries | 对象 | 批量和搜索操作的重试统计信息。 |
nodes.<node_id>.tasks.<task_id>.status.requests_per_second | 浮点型 | 当前每秒请求的限流速率。 |
nodes.<node_id>.tasks.<task_id>.status.throttled_millis | 整数 | 任务被限流的时间(毫秒)。 |
nodes.<node_id>.tasks.<task_id>.status.throttled_until_millis | 整数 | 任务预计保持限流状态的时间(毫秒)。 |
nodes.<node_id>.tasks.<task_id>.description | 字符串 | 任务的人类可读描述。 |
nodes.<node_id>.tasks.<task_id>.start_time_in_millis | 整数 | 任务开始时间(纪元毫秒)。 |
nodes.<node_id>.tasks.<task_id>.running_time_in_nanos | 整数 | 任务运行时间(纳秒)。 |
nodes.<node_id>.tasks.<task_id>.cancellable | 布尔型 | 任务是否可以取消。 |
nodes.<node_id>.tasks.<task_id>.cancelled | 布尔型 | 任务是否已取消。 |
nodes.<node_id>.tasks.<task_id>.headers | 对象 | 与任务关联的可选 HTTP 头。 |
nodes.<node_id>.tasks.<task_id>.resource_stats | 对象 | 资源使用统计。 |