From 1d3bd46c6a545de8350c823041fbe822340f55d6 Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Thu, 26 Jun 2025 12:18:38 -0600 Subject: [PATCH] Allow larger write queues for large nodes (#130061) With the rise of larger CPU count nodes our current write queue size might be too conservative. Indexing pressure will still provide protect against out of memories. --- .../configuration-reference/thread-pool-settings.md | 2 +- .../threadpool/DefaultBuiltInExecutorBuilders.java | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md b/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md index 8314ff41bdc5..b7253ba5f9d3 100644 --- a/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md +++ b/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md @@ -33,7 +33,7 @@ $$$search-throttled$$$`search_throttled` : For analyze requests. Thread pool type is `fixed` with a size of `1`, queue size of `16`. `write` -: For write operations and ingest processors. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `10000`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors). +: For write operations and ingest processors. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `max(10000, (`[`# of allocated processors`](#node.processors)`* 750))`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors). `write_coordination` : For bulk request coordination operations. Thread pool type is `fixed` with a size of [`# of allocated processors`](#node.processors), queue_size of `10000`. The maximum size for this pool is `1 + `[`# of allocated processors`](#node.processors). diff --git a/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java b/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java index 336d978358b9..46d64b9713fa 100644 --- a/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java +++ b/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java @@ -54,7 +54,8 @@ public class DefaultBuiltInExecutorBuilders implements BuiltInExecutorBuilders { settings, ThreadPool.Names.WRITE, allocatedProcessors, - 10000, + // 10,000 for all nodes with 8 cores or fewer. Scale up once we have more than 8 cores. + Math.max(allocatedProcessors * 750, 10000), new EsExecutors.TaskTrackingConfig(true, indexAutoscalingEWMA) ) );