長時間実行中の検索タスクと reindex タスクを特定し、キャンセルまたはスロットルする
Elasticsearchメンテナンスコマンド
# Longest running tasks:
GET _cat/tasks?v&detailed&h=action,task_id,parent_task_id,running_time,node,description&s=running_time:desc
# Search, reindex and by-query tasks, grouped by parent:
GET _tasks?actions=*search*,*reindex*,*byquery*&detailed=true&group_by=parents
# Cancel a single task:
POST _tasks/<task_id>/_cancel
# Cancel all search tasks (with care):
POST _tasks/_cancel?actions=*search*
# Slow down a running reindex/update_by_query:
POST _reindex/<task_id>/_rethrottle?requests_per_second=500概要
クラスタで実行中のタスクを所要時間で並べ替え、検索と一括操作をクエリの説明とともに表示する。選択したタスクまたはすべての検索をキャンセルし、reindex/by-query ジョブをスロットルする。
使用する場面
search スレッドプールが満杯になった場合、CPU が急上昇した場合、ダッシュボードの重い集計がクラスタに負担をかける場合、または update_by_query が本番環境に影響する場合。
注意
キャンセルは協調的に行われる: タスクは次のチェックポイントで停止する。一部のフェーズ (例: force merge) はキャンセルできない。すべての検索をキャンセルすると、ユーザーにエラーが返される。キャンセルした reindex/by-query は、それまでに行われた変更をロールバックしないため、ターゲットには部分的なデータが含まれる。親タスクをキャンセルすると、その子タスクもキャンセルされる。