From 054913c87cbf93fd0de06077ae35339e38912678 Mon Sep 17 00:00:00 2001 From: spalger Date: Tue, 11 Aug 2020 15:39:51 -0700 Subject: [PATCH] revert change to max worker count --- .../src/optimizer/optimizer_config.test.ts | 16 ++++++++-------- .../src/optimizer/optimizer_config.ts | 14 +++++++++----- 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts b/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts index 2eb04706fae69d..afc2dc8952c87a 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_config.test.ts @@ -121,7 +121,7 @@ describe('OptimizerConfig::parseOptions()', () => { "filters": Array [], "includeCoreBundle": false, "inspectWorkers": false, - "maxWorkerCount": 3, + "maxWorkerCount": 2, "outputRoot": , "pluginPaths": Array [], "pluginScanDirs": Array [ @@ -149,7 +149,7 @@ describe('OptimizerConfig::parseOptions()', () => { "filters": Array [], "includeCoreBundle": false, "inspectWorkers": false, - "maxWorkerCount": 3, + "maxWorkerCount": 2, "outputRoot": , "pluginPaths": Array [], "pluginScanDirs": Array [ @@ -177,7 +177,7 @@ describe('OptimizerConfig::parseOptions()', () => { "filters": Array [], "includeCoreBundle": false, "inspectWorkers": false, - "maxWorkerCount": 3, + "maxWorkerCount": 2, "outputRoot": , "pluginPaths": Array [], "pluginScanDirs": Array [ @@ -207,7 +207,7 @@ describe('OptimizerConfig::parseOptions()', () => { "filters": Array [], "includeCoreBundle": false, "inspectWorkers": false, - "maxWorkerCount": 3, + "maxWorkerCount": 2, "outputRoot": , "pluginPaths": Array [], "pluginScanDirs": Array [ @@ -234,7 +234,7 @@ describe('OptimizerConfig::parseOptions()', () => { "filters": Array [], "includeCoreBundle": false, "inspectWorkers": false, - "maxWorkerCount": 3, + "maxWorkerCount": 2, "outputRoot": , "pluginPaths": Array [], "pluginScanDirs": Array [ @@ -449,7 +449,7 @@ describe('OptimizerConfig::create()', () => { [Window], ], "invocationCallOrder": Array [ - 15, + 21, ], "results": Array [ Object { @@ -475,7 +475,7 @@ describe('OptimizerConfig::create()', () => { [Window], ], "invocationCallOrder": Array [ - 17, + 23, ], "results": Array [ Object { @@ -499,7 +499,7 @@ describe('OptimizerConfig::create()', () => { [Window], ], "invocationCallOrder": Array [ - 16, + 22, ], "results": Array [ Object { diff --git a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts index bfbfbd24b41bf3..45598ff8831b0b 100644 --- a/packages/kbn-optimizer/src/optimizer/optimizer_config.ts +++ b/packages/kbn-optimizer/src/optimizer/optimizer_config.ts @@ -33,10 +33,14 @@ import { findKibanaPlatformPlugins, KibanaPlatformPlugin } from './kibana_platfo import { getPluginBundles } from './get_plugin_bundles'; import { filterById } from './filter_by_id'; -// don't break if cpus() returns nothing, or an empty array -const CPU_COUNT = Math.max(Os.cpus()?.length, 1); -// ensure we have at least three workers -const MAX_WORKER_COUNT = Math.max(CPU_COUNT - 1, 3); +function pickMaxWorkerCount(dist: boolean) { + // don't break if cpus() returns nothing, or an empty array + const cpuCount = Math.max(Os.cpus()?.length, 1); + // if we're buiding the dist then we can use more of the system's resources to get things done a little quicker + const maxWorkers = dist ? cpuCount - 1 : Math.ceil(cpuCount / 3); + // ensure we always have at least two workers + return Math.max(maxWorkers, 2); +} function omit(obj: T, keys: K[]): Omit { const result: any = {}; @@ -178,7 +182,7 @@ export class OptimizerConfig { const maxWorkerCount = process.env.KBN_OPTIMIZER_MAX_WORKERS ? parseInt(process.env.KBN_OPTIMIZER_MAX_WORKERS, 10) - : options.maxWorkerCount ?? MAX_WORKER_COUNT; + : options.maxWorkerCount ?? pickMaxWorkerCount(dist); if (typeof maxWorkerCount !== 'number' || !Number.isFinite(maxWorkerCount)) { throw new TypeError('worker count must be a number'); }