This is an automated email from the ASF dual-hosted git repository.
vatsrahul1001 pushed a commit to branch v3-4-test
in repository https://gitbox.apache.org/repos/asf/airflow.git
The following commit(s) were added to refs/heads/v3-4-test by this push:
new 29fd4976404 [v3-4-test] Keep RunsOn runners off the Spot pools
reclaimed most often (#76084) (#76114)
29fd4976404 is described below
commit 29fd4976404be41f2c95681b97a47a9bb56cf436
Author: github-actions[bot]
<41898282+github-actions[bot]@users.noreply.github.com>
AuthorDate: Sat Oct 31 12:44:24 2026 +0530
[v3-4-test] Keep RunsOn runners off the Spot pools reclaimed most often
(#76084) (#76114)
From 2026-10-25 to 2026-10-30 about half of the Spot interruptions of
RunsOn runners in us-east-2
came from a few instance families that made up only an eighth of the Spot
launches: m5 (and the
m5n, m5d, m5ad, m5dn pools its prefix pulls in), m6a, and the r6a, r7a and
r6i pools of the
in-memory runners were reclaimed 13-54% of the time, the other families
1-4%. Each interruption
reruns the whole job. AWS Spot Advisor rates r7i above 20% in the region
too.
(cherry picked from commit 95ba43c0347098ad0347d329717133c97facfc5a)
Generated-by: Claude Opus 5
Co-authored-by: Jarek Potiuk <[email protected]>
---
dev/breeze/src/airflow_breeze/global_constants.py | 7 +++++--
dev/breeze/tests/test_selective_checks.py | 5 ++---
2 files changed, 7 insertions(+), 5 deletions(-)
diff --git a/dev/breeze/src/airflow_breeze/global_constants.py
b/dev/breeze/src/airflow_breeze/global_constants.py
index 6f710833188..aa619bbc61f 100644
--- a/dev/breeze/src/airflow_breeze/global_constants.py
+++ b/dev/breeze/src/airflow_breeze/global_constants.py
@@ -43,8 +43,11 @@ PUBLIC_ARM_RUNNERS = '["ubuntu-22.04-arm"]'
# `spot=co` (capacity-optimized) takes Spot from the pools least likely to run
out or be reclaimed
# instead of RunsOn's default price-capacity-optimized: a capacity miss or an
interruption sends the
# runner to on-demand (and reruns the whole job), which costs more than the
higher Spot price.
+# A family matches as a prefix (`m5` also takes m5n, m5d, ...). Left out
because their us-east-2 Spot
+# runners were reclaimed far more often than the rest (13-54% vs. 1-4%, Oct
2026): m5, m5a, m6a and,
+# for the in-memory runners, r7a, r6a, r6i; r7i, which AWS Spot Advisor rates
>20% there, too.
RUNS_ON_AMD_RUNNER_TEMPLATE = (
-
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5/image=ubuntu22-full-x64/volume=150gb/spot=co"
+
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}"
)
RUNS_ON_ARM_RUNNER_TEMPLATE = (
@@ -54,7 +57,7 @@ RUNS_ON_ARM_RUNNER_TEMPLATE = (
# databases wait on disk syncs. The RAM disk is capped at 100% of RAM before
RunsOn v3.5.0, so these jobs
# ask for memory headroom and also accept the memory-optimized r-family.
RUNS_ON_AMD_IN_MEMORY_RUNNER_TEMPLATE = (
-
"runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5+r8i+r7a+r7i+r6a+r6i"
+ "runs-on={run_id}/family=m8a+m8i+m7a+m7i+m6i+r8i"
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
"/cpu={{0}}/ram={{1}}/extras=tmpfs"
)
diff --git a/dev/breeze/tests/test_selective_checks.py
b/dev/breeze/tests/test_selective_checks.py
index fd36a7c4975..47d3913f8b9 100644
--- a/dev/breeze/tests/test_selective_checks.py
+++ b/dev/breeze/tests/test_selective_checks.py
@@ -5198,14 +5198,13 @@ def
test_providers_with_test_side_effects_are_shared_process_providers():
RUNS_ON_AMD = (
-
'["runs-on=42/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5/image=ubuntu22-full-x64/volume=150gb/spot=co'
- '/cpu={0}/ram={1}"]'
+
'["runs-on=42/family=m8a+m8i+m7a+m7i+m6i/image=ubuntu22-full-x64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
)
RUNS_ON_ARM = (
'["runs-on=42/family=m8g+m7g+m6g/image=ubuntu22-full-arm64/volume=150gb/spot=co/cpu={0}/ram={1}"]'
)
RUNS_ON_AMD_IN_MEMORY = (
- '["runs-on=42/family=m8a+m8i+m7a+m7i+m6a+m6i+m5a+m5+r8i+r7a+r7i+r6a+r6i'
+ '["runs-on=42/family=m8a+m8i+m7a+m7i+m6i+r8i'
"/image=ubuntu22-full-x64/volume=150gb/spot=co"
'/cpu={0}/ram={1}/extras=tmpfs"]'
)