DBAtlas · Atlas de operaciones de bases de datos

Encontrar, cancelar o limitar tareas de búsqueda y reindex de larga duración

ElasticsearchMantenimiento

Comando

# 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

Qué hace

Ordena por duración las tareas en ejecución en el clúster, muestra las búsquedas y operaciones bulk con la descripción de su consulta; cancela una tarea seleccionada o todas las búsquedas y limita los jobs de reindex/by-query.

Cuándo usarlo

Cuando se llena el thread pool de search, la CPU sube de repente, un dashboard castiga el clúster con una agregación pesada o un update_by_query afecta a producción.

Precaución

La cancelación es cooperativa: la tarea se detiene en su siguiente punto de control; algunas fases (p. ej. force merge) no se pueden cancelar. Cancelar todas las búsquedas devuelve errores a los usuarios. Un reindex/by-query cancelado no revierte los cambios hechos hasta entonces; el destino contiene datos parciales. Cuando se cancela una tarea padre, también se cancelan sus tareas hijas.

Abrir en DBAtlas →

Relacionado