Created thread pool – How to solve this Elasticsearch error

Opster Team

Aug-23, Version: 6.8-8.9

Briefly, this error occurs when Elasticsearch creates a new thread pool due to the existing ones being fully occupied. This could be due to high load, inefficient queries, or insufficient resources. To resolve this, you can optimize your queries, increase the capacity of your Elasticsearch cluster, or adjust the thread pool settings to better suit your workload. However, be cautious with the latter as it could lead to resource contention if not properly configured.

This guide will help you check for common problems that cause the log ” created thread pool: {} ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: threadpool, thread.

Log Context

Log “created thread pool: {}” classname is ThreadPool.java.
We extracted the following from Elasticsearch source code for those seeking an in-depth context :

            final ExecutorBuilder.ExecutorSettings executorSettings = entry.getValue().getSettings(settings);
            final ExecutorHolder executorHolder = entry.getValue().build(executorSettings; threadContext);
            if (executors.containsKey(executorHolder.info.getName())) {
                throw new IllegalStateException("duplicate executors with name [" + executorHolder.info.getName() + "] registered");
            }
            logger.debug("created thread pool: {}"; entry.getValue().formatInfo(executorHolder.info));
            executors.put(entry.getKey(); executorHolder);
        }

        executors.put(Names.SAME; new ExecutorHolder(EsExecutors.DIRECT_EXECUTOR_SERVICE; new Info(Names.SAME; ThreadPoolType.DIRECT)));
        this.executors = Map.copyOf(executors);

 

How helpful was this guide?

We are sorry that this post was not useful for you!

Let us improve this post!

Tell us how we can improve this post?