diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-28 15:03:13 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2022-01-28 15:03:13 +0100 |
commit | 71daa3cc1401c8f1564755e34b08ed07ecfef620 (patch) | |
tree | b96008d1aad0ed52c466112cf05caaeb48c8910b | |
parent | 9b073cc85ec279997316531c967e55a5e82886d2 (diff) |
Run with 20% of cores at lowest priority.
-rw-r--r-- | container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java index 29a383f8896..72b489e3ca9 100644 --- a/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java +++ b/container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java @@ -32,7 +32,7 @@ public class CompiledQueryProfileRegistry extends ComponentRegistry<CompiledQuer public CompiledQueryProfileRegistry(QueryProfilesConfig config, Executor executor) { QueryProfileRegistry registry = QueryProfileConfigurer.createFromConfig(config); typeRegistry = registry.getTypeRegistry(); - int maxConcurrent = Math.max(1, Runtime.getRuntime().availableProcessors()/2); + int maxConcurrent = Math.max(1, (int)(Runtime.getRuntime().availableProcessors() * 0.20)); BlockingQueue<CompiledQueryProfile> doneQ = new LinkedBlockingQueue<>(); int started = 0; int completed = 0; @@ -43,7 +43,16 @@ public class CompiledQueryProfileRegistry extends ComponentRegistry<CompiledQuer register(doneQ.take()); completed++; } - executor.execute(() -> doneQ.add(QueryProfileCompiler.compile(inputProfile, this))); + executor.execute(() -> { + Thread self = Thread.currentThread(); + int prevPriority = self.getPriority(); + try { + self.setPriority(Thread.MIN_PRIORITY); + doneQ.add(QueryProfileCompiler.compile(inputProfile, this)); + } finally { + self.setPriority(prevPriority); + } + }); } while (completed < started) { register(doneQ.take()); |