aboutsummaryrefslogtreecommitdiffhomepage
path: root/src/main/java/com/google
diff options
context:
space:
mode:
authorGravatar Philipp Wollermann <philwo@google.com>2015-09-21 13:39:52 +0000
committerGravatar Damien Martin-Guillerez <dmarting@google.com>2015-09-21 14:25:57 +0000
commitb181aff084af586c9c07c058ed7524606077bdf6 (patch)
tree016992d3f6fa2320c8bc34aba96f0feb56cee80c /src/main/java/com/google
parent13f9150e7706ad226831b52981cb0b7c76678b7b (diff)
workers: Some tweaks to the WorkerPool config.
-- MOS_MIGRATED_REVID=103541116
Diffstat (limited to 'src/main/java/com/google')
-rw-r--r--src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java b/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java
index cb148720b5..319b97450f 100644
--- a/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java
+++ b/src/main/java/com/google/devtools/build/lib/worker/WorkerModule.java
@@ -66,7 +66,24 @@ public class WorkerModule extends BlazeModule {
}
GenericKeyedObjectPoolConfig config = new GenericKeyedObjectPoolConfig();
- config.setTimeBetweenEvictionRunsMillis(10 * 1000);
+
+ // It's better to re-use a worker as often as possible and keep it hot, in order to profit
+ // from JIT optimizations as much as possible.
+ config.setLifo(true);
+
+ // Check for & deal with idle workers every 5 seconds.
+ config.setTimeBetweenEvictionRunsMillis(5 * 1000);
+
+ // Always test the liveliness of worker processes.
+ config.setTestOnBorrow(true);
+ config.setTestOnCreate(true);
+ config.setTestOnReturn(true);
+ config.setTestWhileIdle(true);
+
+ // Don't limit the total number of worker processes, as otherwise the pool might be full of
+ // e.g. Java workers and could never accommodate another request for a different kind of
+ // worker.
+ config.setMaxTotal(-1);
workers = new WorkerPool(new WorkerFactory(), config);
workers.setReporter(env.getReporter());