### Description

Today, [force merge is assigned one thread](https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-threadpool.html) only.  

> For [force merge](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-forcemerge.html) operations. Thread pool type is fixed with a size of 1 and an unbounded queue size.

In a large cluster where there are many processors available, there could be a backlog of force merge queued up.  Perhaps we should look into changing the default of force merge thread_pool to a max of `min(1, (# of allocated processors) / 8)`
server/src/main/java/org/elasticsearch/threadpool/ThreadPool.java
cachedTimeThread.running = false;
        cachedTimeThread.interrupt();
    }
    public void shutdown() {
        stopCachedTimeThread();
        scheduler.shutdown();
        for (ExecutorHolder executor : executors.values()) {
            if (executor.executor() instanceof ThreadPoolExecutor) {
                executor.executor().shutdown();
            }
        }
    }
    public void shutdownNow() {
        stopCachedTimeThread();
        scheduler.shutdownNow();
        for (ExecutorHolder executor : executors.values()) {
            if (executor.executor() instanceof ThreadPoolExecutor) {
                executor.executor().shutdownNow();
            }
        }
    }
    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {
        boolean result = scheduler.awaitTermination(timeout, unit);
        for (ExecutorHolder executor : executors.values()) {
            if (executor.executor() instanceof ThreadPoolExecutor) {
                result &= executor.executor().awaitTermination(timeout, unit);
            }
        }
        cachedTimeThread.join(unit.toMillis(timeout));
        return result;