Increase default write queue size (#59464)

This commit increases the default write queue size to 10000. This is to
allow a greater number of pending indexing requests. This work is safe
as we have added additional memory limits. Relates to #59263.
This commit is contained in:
Tim Brooks 2020-07-14 10:35:25 -06:00 committed by GitHub
parent 1a24916fef
commit a46e5e0f04
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 1 deletions

View File

@ -22,3 +22,12 @@ Snapshot restore throttling::
default that's used for `indices.recovery.max_bytes_per_sec`. This means
that no behavioral change will be observed by clusters where the recovery
and restore settings had not been adapted from the defaults. {es-pull}58658[#58658]
Thread pool write queue size::
* The WRITE thread pool default queue size (`thread_pool.write.size`) has been
increased from 200 to 10000. A small queue size (200) caused issues when users
wanted to send small indexing requests with a high client count. Additional
memory-oriented back pressure has been introduced with the
`indexing_pressure.memory.limit` setting. This setting configures a limit to
the number of bytes allowed to be consumed by outstanding indexing requests.
{es-issue}59263[#59263]

View File

@ -172,7 +172,7 @@ public class ThreadPool implements ReportingService<ThreadPoolInfo>, Scheduler {
final int halfProcMaxAt10 = halfAllocatedProcessorsMaxTen(allocatedProcessors);
final int genericThreadPoolMax = boundedBy(4 * allocatedProcessors, 128, 512);
builders.put(Names.GENERIC, new ScalingExecutorBuilder(Names.GENERIC, 4, genericThreadPoolMax, TimeValue.timeValueSeconds(30)));
builders.put(Names.WRITE, new FixedExecutorBuilder(settings, Names.WRITE, allocatedProcessors, 200));
builders.put(Names.WRITE, new FixedExecutorBuilder(settings, Names.WRITE, allocatedProcessors, 10000));
builders.put(Names.GET, new FixedExecutorBuilder(settings, Names.GET, allocatedProcessors, 1000));
builders.put(Names.ANALYZE, new FixedExecutorBuilder(settings, Names.ANALYZE, 1, 16));
builders.put(Names.SEARCH, new AutoQueueAdjustingExecutorBuilder(settings,