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.
This commit is contained in:
Tim Brooks 2025-06-26 12:18:38 -06:00 committed by GitHub
parent f07de5ac4a
commit 1d3bd46c6a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 3 additions and 2 deletions

View file

@ -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).

View file

@ -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)
)
);