From 71815a10f6031651e75520d3a01731838a02c132 Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Wed, 25 Jun 2025 21:11:59 -0600 Subject: [PATCH 1/2] Allow larger write queues for large nodes 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. --- .../threadpool/DefaultBuiltInExecutorBuilders.java | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java b/server/src/main/java/org/elasticsearch/threadpool/DefaultBuiltInExecutorBuilders.java index 336d978358b9f..46d64b9713fa9 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 Map getBuilders(Settings settings, int allocated 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) ) ); From c5dd20f5e900a62dc5aeb9064f64af14f7c2386c Mon Sep 17 00:00:00 2001 From: Tim Brooks Date: Thu, 26 Jun 2025 09:25:20 -0600 Subject: [PATCH 2/2] doc --- .../configuration-reference/thread-pool-settings.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md b/docs/reference/elasticsearch/configuration-reference/thread-pool-settings.md index 8314ff41bdc59..b7253ba5f9d39 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).