aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2022-01-28 15:03:13 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2022-01-28 15:03:13 +0100
commit71daa3cc1401c8f1564755e34b08ed07ecfef620 (patch)
treeb96008d1aad0ed52c466112cf05caaeb48c8910b
parent9b073cc85ec279997316531c967e55a5e82886d2 (diff)
Run with 20% of cores at lowest priority.
-rw-r--r--container-search/src/main/java/com/yahoo/search/query/profile/compiled/CompiledQueryProfileRegistry.java13
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());