mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-09 14:34:43 +00:00
Thread Pool: Update default settings (move from default cached to fixed)
closes #2858
This commit is contained in:
parent
f1dd867c4f
commit
54f685674b
@ -69,7 +69,6 @@ public class ThreadPool extends AbstractComponent {
|
||||
public static final String MANAGEMENT = "management";
|
||||
public static final String FLUSH = "flush";
|
||||
public static final String MERGE = "merge";
|
||||
public static final String CACHE = "cache";
|
||||
public static final String REFRESH = "refresh";
|
||||
public static final String WARMER = "warmer";
|
||||
public static final String SNAPSHOT = "snapshot";
|
||||
@ -97,21 +96,22 @@ public class ThreadPool extends AbstractComponent {
|
||||
|
||||
Map<String, Settings> groupSettings = settings.getGroups(THREADPOOL_GROUP);
|
||||
|
||||
// TODO figure out the best defaults for *all* thread pools
|
||||
int availableProcessors = Runtime.getRuntime().availableProcessors();
|
||||
int halfProcMaxAt5 = Math.min(((availableProcessors + 1) / 2), 5);
|
||||
int halfProcMaxAt10 = Math.min(((availableProcessors + 1) / 2), 10);
|
||||
defaultExecutorTypeSettings = ImmutableMap.<String, Settings>builder()
|
||||
.put(Names.GENERIC, settingsBuilder().put("type", "cached").put("keep_alive", "30s").build())
|
||||
.put(Names.INDEX, settingsBuilder().put("type", "cached").build())
|
||||
.put(Names.BULK, settingsBuilder().put("type", "cached").build())
|
||||
.put(Names.GET, settingsBuilder().put("type", "cached").build())
|
||||
.put(Names.SEARCH, settingsBuilder().put("type", "cached").build())
|
||||
.put(Names.PERCOLATE, settingsBuilder().put("type", "cached").build())
|
||||
.put(Names.INDEX, settingsBuilder().put("type", "fixed").put("size", availableProcessors).build())
|
||||
.put(Names.BULK, settingsBuilder().put("type", "fixed").put("size", availableProcessors).build())
|
||||
.put(Names.GET, settingsBuilder().put("type", "fixed").put("size", availableProcessors).build())
|
||||
.put(Names.SEARCH, settingsBuilder().put("type", "fixed").put("size", availableProcessors * 2).put("queue_size", 1000).build())
|
||||
.put(Names.PERCOLATE, settingsBuilder().put("type", "fixed").put("size", availableProcessors).build())
|
||||
.put(Names.MANAGEMENT, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 5).build())
|
||||
.put(Names.FLUSH, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 10).build())
|
||||
.put(Names.MERGE, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 20).build())
|
||||
.put(Names.REFRESH, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 10).build())
|
||||
.put(Names.WARMER, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", Math.min(((Runtime.getRuntime().availableProcessors() + 1) / 2), 5)).build())
|
||||
.put(Names.CACHE, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 4).build())
|
||||
.put(Names.SNAPSHOT, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", 5).build())
|
||||
.put(Names.FLUSH, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", halfProcMaxAt5).build())
|
||||
.put(Names.MERGE, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", halfProcMaxAt5).build())
|
||||
.put(Names.REFRESH, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", halfProcMaxAt10).build())
|
||||
.put(Names.WARMER, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", halfProcMaxAt5).build())
|
||||
.put(Names.SNAPSHOT, settingsBuilder().put("type", "scaling").put("keep_alive", "5m").put("size", halfProcMaxAt5).build())
|
||||
.build();
|
||||
|
||||
Map<String, ExecutorHolder> executors = Maps.newHashMap();
|
||||
|
@ -3,6 +3,7 @@ package org.elasticsearch.test.integration.threadpool;
|
||||
import org.elasticsearch.action.admin.cluster.node.info.NodeInfo;
|
||||
import org.elasticsearch.action.admin.cluster.node.info.NodesInfoResponse;
|
||||
import org.elasticsearch.client.Client;
|
||||
import org.elasticsearch.common.settings.ImmutableSettings;
|
||||
import org.elasticsearch.common.xcontent.ToXContent;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentFactory;
|
||||
@ -36,8 +37,8 @@ public class SimpleThreadPoolTests extends AbstractNodesTests {
|
||||
|
||||
@BeforeClass
|
||||
public void createNodes() throws Exception {
|
||||
startNode("node1");
|
||||
startNode("node2");
|
||||
startNode("node1", ImmutableSettings.settingsBuilder().put("threadpool.search.type", "cached").build());
|
||||
startNode("node2", ImmutableSettings.settingsBuilder().put("threadpool.search.type", "cached").build());
|
||||
client1 = client("node1");
|
||||
client2 = client("node2");
|
||||
threadPool = ((InternalNode) node("node1")).injector().getInstance(ThreadPool.class);
|
||||
|
@ -48,7 +48,7 @@ public class UpdateThreadPoolSettingsTests {
|
||||
|
||||
@Test
|
||||
public void testCachedExecutorType() {
|
||||
ThreadPool threadPool = new ThreadPool(ImmutableSettings.Builder.EMPTY_SETTINGS, null);
|
||||
ThreadPool threadPool = new ThreadPool(ImmutableSettings.settingsBuilder().put("threadpool.search.type", "cached").build(), null);
|
||||
assertThat(info(threadPool, Names.SEARCH).type(), equalTo("cached"));
|
||||
assertThat(info(threadPool, Names.SEARCH).keepAlive().minutes(), equalTo(5L));
|
||||
assertThat(threadPool.executor(Names.SEARCH), instanceOf(EsThreadPoolExecutor.class));
|
||||
@ -284,7 +284,7 @@ public class UpdateThreadPoolSettingsTests {
|
||||
|
||||
@Test(timeOut = 10000)
|
||||
public void testShutdownDownNowDoesntBlock() throws Exception {
|
||||
ThreadPool threadPool = new ThreadPool(ImmutableSettings.Builder.EMPTY_SETTINGS, null);
|
||||
ThreadPool threadPool = new ThreadPool(ImmutableSettings.settingsBuilder().put("threadpool.search.type", "cached").build(), null);
|
||||
|
||||
final CountDownLatch latch = new CountDownLatch(1);
|
||||
Executor oldExecutor = threadPool.executor(Names.SEARCH);
|
||||
|
Loading…
x
Reference in New Issue
Block a user