Skip to content

Widen the Spot pool for RunsOn runners: more families, capacity-optimized, size ranges - #75822

Merged
potiuk merged 3 commits into
apache:mainfrom
potiuk:runs-on-wider-x64-families
Oct 27, 2026
Merged

potiuk merged 3 commits into
apache:mainfrom
potiuk:runs-on-wider-x64-families

Conversation

@potiuk

@potiuk potiuk commented Oct 27, 2026 •

Copy link
Copy Markdown
Member

On RunsOn, every job asks for one exact size from four x64 families (family=m7a+m7i+m6a+m6i, cpu=8/ram=32) with RunsOn's default price-capacity-optimized Spot strategy. That leaves the Spot allocator few pools, and in us-east-2 they run short: of 2156 Spot capacity errors in the RunsOn worker log on 2026-10-26/27, 1959 were x64 and 197 arm64. A miss sends the runner to on-demand, and an interruption reruns the whole job on on-demand (719 reruns in those two days). On-demand costs more and its 2000 vCPU quota was full on 2026-10-26 16:00 UTC.

This PR widens the pool in three ways:

  1. More families. x64 runners also accept m8a, m8i, m5a, m5, and the x64 in-memory runners also accept r8i. All of them have Spot capacity offered in all three us-east-2 zones, at prices comparable to the current families (2xlarge Spot on 2026-10-27: 0.08–0.16 USD/hour against 0.12–0.15). arm64 families are unchanged.
  2. spot=co (capacity-optimized) on all RunsOn templates. AWS takes Spot from the pools with the most spare capacity, which lowers both capacity misses and interruptions, at a somewhat higher Spot price than the default.
  3. Size ranges. Each class accepts up to twice its size: 4+8/16+32, 8+16/32+64, 32+64/128+256, and 8+16/32+128 for the in-memory jobs (101 format() call sites in 18 workflows). Spot can then also come from the next size up.

Trade-off: capacity-optimized ignores price, so with ranges a job can land on an instance up to twice the size it needs, at up to twice the hourly price. xdist follows the host's CPUs, so such a job runs twice the test workers and finishes sooner, but job durations become less comparable between runs. The weekly on-demand share report in apache/airflow-ci-infra and the RunsOn daily cost report will show whether the net cost goes down. Each part is its own commit and can be reverted on its own.

Related: apache/airflow-ci-infra#77 upgrades the RunsOn stack to v3.5.1, after which a Spot capacity miss sends only the affected runner to on-demand instead of every job for five minutes.

🤖 Generated with Claude Code

@shahar1
shahar1 enabled auto-merge (squash) October 27, 2026 20:47
@potiuk

potiuk commented Oct 27, 2026

Copy link
Copy Markdown
Member Author

(we should only merge after deploying terraform plan).

@potiuk potiuk changed the title Let RunsOn x64 runners use more instance families for Spot Widen the Spot pool for RunsOn runners: more families, capacity-optimized, size ranges Oct 27, 2026
@potiuk
potiuk disabled auto-merge October 27, 2026 21:43
@potiuk
potiuk merged commit d17f121 into apache:main Oct 27, 2026
89 of 113 checks passed
@potiuk
potiuk deleted the runs-on-wider-x64-families branch October 27, 2026 21:43
@github-actions

Copy link
Copy Markdown
Contributor

Backport successfully created: v3-4-test

Note: As of Merging PRs targeted for Airflow 3.X
the committer who merges the PR is responsible for backporting the PRs that are bug fixes (generally speaking) to the maintenance branches.

In matter of doubt please ask in #release-management Slack channel.

Status Branch Result
✅ v3-4-test PR Link

github-actions Bot pushed a commit to aws-mwaa/upstream-to-airflow that referenced this pull request Oct 27, 2026
…pacity-optimized, size ranges (apache#75822)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size
(cherry picked from commit d17f121)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5
aws-airflow-bot pushed a commit to aws-mwaa/upstream-to-airflow that referenced this pull request Oct 27, 2026
…pacity-optimized, size ranges (apache#75822)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size
(cherry picked from commit d17f121)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5
vatsrahul1001 pushed a commit that referenced this pull request Oct 28, 2026
…pacity-optimized, size ranges (#75822)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size
(cherry picked from commit d17f121)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5
vatsrahul1001 pushed a commit that referenced this pull request Oct 28, 2026
…pacity-optimized, size ranges (#75822)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size
(cherry picked from commit d17f121)

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Generated-by: Claude Opus 5
vatsrahul1001 pushed a commit that referenced this pull request Oct 28, 2026
…pacity-optimized, size ranges (#75822) (#75825)

* Let RunsOn x64 runners use more instance families for Spot

Generated-by: Claude Opus 5

* Take RunsOn Spot runners from capacity-optimized pools

Generated-by: Claude Opus 5

* Let RunsOn runners take Spot from up to twice the requested size
(cherry picked from commit d17f121)


Generated-by: Claude Opus 5

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
potiuk added a commit that referenced this pull request Nov 1, 2026
The static checks of every pull request based on current main fail in
`ruff format`, which reformats these two constants, added in #75822.

Generated-by: Claude Opus 5
potiuk added a commit that referenced this pull request Nov 1, 2026
… tests (#76246) (#76247)

The static checks of every pull request based on current main fail in
`ruff format`, which reformats these two constants, added in #75822.
(cherry picked from commit 7831e8e)


Generated-by: Claude Opus 5

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
vatsrahul1001 pushed a commit that referenced this pull request Nov 4, 2026
… tests (#76246) (#76247)

The static checks of every pull request based on current main fail in
`ruff format`, which reformats these two constants, added in #75822.
(cherry picked from commit 7831e8e)


Generated-by: Claude Opus 5

Co-authored-by: Jarek Potiuk <jarek@potiuk.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants