DBAtlas · Atlas d'exploitation des bases de données

Trouver, annuler ou limiter les tâches de recherche et de reindex longues

ElasticsearchMaintenance

Commande

# 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

Ce que fait la commande

Trie par durée les tâches en cours dans le cluster, affiche les recherches et opérations bulk avec la description de leur requête ; annule une tâche choisie ou toutes les recherches, et limite les jobs reindex/by-query.

Quand l'utiliser

Quand le thread pool search se remplit, que le CPU monte soudainement, qu'un dashboard sollicite le cluster avec une agrégation lourde, ou qu'un update_by_query affecte la production.

Attention

L'annulation est coopérative : la tâche s'arrête à son prochain point de contrôle ; certaines phases (par ex. force merge) ne peuvent pas être annulées. Annuler toutes les recherches renvoie des erreurs aux utilisateurs. Un reindex/by-query annulé n'annule pas les modifications déjà effectuées ; la cible contient des données partielles. Quand une tâche parente est annulée, ses tâches enfants le sont aussi.

Ouvrir dans DBAtlas →

Voir aussi