aboutsummaryrefslogtreecommitdiff
path: root/scripts/test_scripts/hub/perf_configs/hub.lua
blob: ff9ab582e4c8fa45b1b5dc26f6f07b0d41dae8e0 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
-- Perf-test hub config: mirrors the production hub config in the repo root
-- (hub.lua / instance.lua). The launch script overrides hub.instance.config
-- and the effective concurrency (--corelimit=128) via CLI to simulate an
-- r5n.32xlarge box so the default auto-picks match what prod sees there.

hub = {
  instance = {
    baseportnumber = 21000, -- default
    limits = {
      count = 1100, -- headroom for 1000-module perf runs
      memorylimitpercent = 90, -- default: 0 (disabled)
      disklimitpercent = 90, -- default: 0 (disabled)
    },
    corelimit = 4, -- default: 0 (auto)
    -- provisionthreads / spawnthreads / hub.hydration.threads left unset: defaults
    -- (clamp(cpu/8,4,12) / clamp(cpu/8,4,16) / clamp(cpu/8,4,12)) are tuned from
    -- 1000-module sweep at 128 vCPU + 30ms latency. Override here only to A/B test.
    -- NOTE: hub.instance.config (path to instance lua) is overridden via
    -- --hub-instance-config on the CLI. If left here, it would be resolved
    -- relative to the hub's CWD at spawn time (NOT this file's dir).
  },

  watchdog = {
    cycleintervalms = 5000, -- default: 3000. slower cycle, 1000 instances to scan
    cycleprocessingbudgetms = 1000, -- default: 500. more budget per cycle for larger instance count
    instancecheckthrottlems = 10, -- default: 5. slight throttle to reduce hub CPU
    provisionedinactivitytimeoutseconds = 600, -- default
    hibernatedinactivitytimeoutseconds = 1800, -- default
    inactivitycheckmarginseconds = 60, -- default
  },
}

network = {
  httpserverthreads = 8, -- default: auto. hub itself needs few threads
}

server = {
  dedicated = true, -- default: false. signals build-farm use, affects thread scaling heuristics
}

gc = {
  enabled = false, -- default: true. hub has no storage, no need for GC
}