Commit 8c40cad
authored
Right-size -opt runners and consolidate node fleets (#889)
**Impact:** CI only — arc-runners-opt / nodepools-opt pilot
(meta-prod-aws-ue1)
**Risk:** medium
## TLDR
Should drop total vCPU utilization * hours by 9.8% (tied directly to
cost) and improve utilization by 5.2% for the simulated period
## What
Trims per-runner vCPU/memory in the `-opt` runner defs to fit within
actual K8s-allocatable capacity, and reshapes the `-opt` Karpenter node
fleets: GPU families (g4dn, g5, g6) collapse from GPU-count-locked
sub-nodepools into single unified fleets, and CPU/memory fleets
consolidate onto smaller ideal instance sizes (c7a→4xl, r7a/r7i→12xl,
m7g/m8g→8xl) with fallback-up chains.
## Why
The previous runner sizings claimed more vCPU/memory than the nodes
actually make schedulable after system overhead, and the fleet layout
had proliferated into many narrow sub-nodepools. Right-sizing the
requests and consolidating fleets improves node packing and reduces the
number of distinct nodepools Karpenter has to manage, while keeping
fallback to larger sizes when the ideal instance is unavailable.
# Notes
- GPU runner defs drop the explicit `node_fleet` field; they now derive
the fleet from the instance family (`g5.8xlarge` → `g5`), so scheduling
relies on `nvidia.com/gpu` requests rather than fleet-level GPU-count
isolation. See `fleet_naming.derive_fleet_name`.
- `instance_specs.py` gains `c7a.4xlarge` (specs + ENI max-pods) to back
the new `c7a-4xl` fleet.
- Scope is the `-opt` pilot only; baseline runner/nodepool defs are
untouched.
script on: #870
```
Nodepool fleets
┌───────────────┬──────────────────────────┬───────────────────────────────────────────────────┬───────────────────────────────────────┐
│ Family │ Base (monolith) │ Opt (sub-nodepools) │ Net change │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ c7a │ c7a → ideal c7a.48xlarge │ c7a-2xl, c7a-4xl, c7a-12xl (+c7a-large unchanged) │ 1 → 3 size pools │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ c7i │ c7i → ideal c7i.48xlarge │ c7i-12xl (+c7i-large unchanged) │ 1 → 1 sub-pool │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ m7g │ m7g → ideal m7g.metal │ m7g-8xl (+m7g-metal unchanged) │ ideal off baremetal → 8xl │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ m7i │ m7i → ideal m7i.48xlarge │ m7i-12xl │ 1 → 1 sub-pool │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ m8g │ m8g monolith+release │ m8g-8xl + m8g (now release-only) │ packing → 8xl; shell kept for release │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ r7a │ r7a monolith+release │ r7a-12xl, r7a-16xl + r7a (release-only) │ 1 → 2 pools; shell for release │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ r7i │ r7i → ideal r7i.48xlarge │ r7i-12xl, r7i-16xl │ 1 → 2 size pools │
├───────────────┼──────────────────────────┼───────────────────────────────────────────────────┼───────────────────────────────────────┤
│ c7i-runner 1 parent 2977499 commit 8c40cad
49 files changed
Lines changed: 240 additions & 340 deletions
File tree
- osdc
- modules
- arc-runners-opt/defs
- nodepools-opt/defs
- scripts/python
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | 7 | | |
9 | | - | |
| 8 | + | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | 7 | | |
9 | | - | |
| 8 | + | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| |||
Lines changed: 1 addition & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | 7 | | |
9 | | - | |
| 8 | + | |
10 | 9 | | |
11 | 10 | | |
12 | 11 | | |
| |||
Lines changed: 3 additions & 4 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | | - | |
8 | 7 | | |
9 | | - | |
10 | | - | |
| 8 | + | |
| 9 | + | |
11 | 10 | | |
12 | 11 | | |
13 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
| 8 | + | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
| 5 | + | |
| 6 | + | |
7 | 7 | | |
8 | | - | |
9 | | - | |
| 8 | + | |
| 9 | + | |
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| |||
0 commit comments