self-host →

the fastest github actions runners, ranked.

Single-thread CPU, queue time, and real $/min for every Linux runner worth considering — official GitHub, self-hosted, and third-party SaaS. The leaderboard re-ranks live as you drag the speed-vs-price dial, and RunsOn rows use real EC2 spot prices in your own AWS account.

TL;DR#

Best value

RunsOn, Namespace, and Blacksmith cluster in the cheap-and-fast corner. RunsOn leads self-hosted on both speed and price; AWS CodeBuild is slower and pricier.

Fastest CPU

x64: Namespace, Blacksmith, and RunsOn’s newest families (m8a / m8azn) lead single-thread. arm64: Namespace leads, followed by RunsOn and Warpbuild.

Cheapest

Self-hosted spot on AWS lands ~5.9× under GitHub — the bill goes to your own AWS account, not a middleman.

How to read: leaderboard and deep dive use the configured CPU/queue percentiles (p50/p50). Higher CPU is better, lower queue is better. Price is normalized $/min.

Providers included#

Official: GitHub (Azure)
Self-hosted: 👋RunsOn (AWS) ·AWS CodeBuild (AWS)
Third-party: Namespace (US/Europe) · Blacksmith (Hetzner) · StarSling (Oracle Cloud) · Avrea (Dedicated hardware) · Warpbuild (Hetzner / AWS) · Ubicloud (Hetzner)

CPU speed vs price per minute#

Each dot is a runner. Up is faster, left is cheaper — so the top-left corner is where you want to be. Dot size is queue time; hover any dot or row to link the two. Drag the speed-vs-price dial and the leaderboard re-ranks live.

Last updated:

Benchmarks use Linux runners only, the Passmark single-thread metric, and the last 30 days of data.

arch
runson price
cheaperfasterleaning faster
70% speed / 30% price
cpu × price × queuespot · us-east-1 · x64
★ cheap & fast1500200025003000350040004500$0.0000$0.0013$0.0026$0.0039$0.0052$0.0065price / min (normalized to 2 vCPU / 8GB) → cheaper is leftCPU score → faster is upRunsOnGitHub

who's who

RunsOn — self-hosted, your AWS account
GitHub — official, the reference price
AWS CodeBuild — managed, in your account
SaaS — Namespace, Blacksmith, Avrea, Warpbuild, Ubicloud

dot size = queue time

~10s
~25s
~40s

Smaller is better — the wait between trigger and first step. GitHub queues fastest; self-hosted spot trades a few seconds for much lower cost.

rank by
#providertypespecscpuqueueprice / minvalue
1Namespacenscloud-ubuntu-24.04-amd64-2x8SaaSstandard4×8GBnorm $0.0024445411s$0.00401.5× cheaper89
2RunsOn family=m8aznSelf-hostedspot2×8GB426824s$0.00125.1× cheaper85
3Avreaavrea-ubuntu-24.04-2-vcpuSaaS2×8GB441214s$0.00401.5× cheaper78
4Blacksmithblacksmith-2vcpu-ubuntu-2404SaaS2×8GB425012s$0.00401.5× cheaper74
5RunsOn family=m8aSelf-hostedspot2×8GB381125s$0.00096.9× cheaper74
6Ubicloudubicloud-premium-2-ubuntu-2404SaaSpremium2×8GB361625s$0.00163.8× cheaper65
7Warpbuildwarp-ubuntu-2404-x64-2xSaaS2×7GB36999s$0.00401.5× cheaper58
8RunsOn family=m8i+r8iSelf-hostedspot2×8GB319224s$0.00105.9× cheaper56
9Ubicloudubicloud-standard-2-ubuntu-2404SaaSstandard2×8GB290014s$0.00106.0× cheaper51
10RunsOn family=c7a+m7a+r7aSelf-hostedspot2×8GB287526s$0.00106.0× cheaper47
11StarSlingstarsling-ubuntu-24.04SaaS2×8GB333513s$0.00401.5× cheaper47
12RunsOn family=c6a+m6a+r6aSelf-hostedspot2×8GB258425s$0.00106.2× cheaper40
13RunsOn family=c7i+m7i+r7iSelf-hostedspot2×8GB254325s$0.00096.5× cheaper39
14GitHubgithub24-2cpu-x64, ubuntu-24.04Official2×8GB22707s$0.0060≈ GitHub5
15GitHubgithub24-2cpu-x64, ubuntu-24.04Official2×8GB21966s$0.0060≈ GitHub2
16AWS CodeBuildcodebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-smallSelf-hosted2×4GBnorm $0.0059214825s$0.00501.2× cheaper1
17AWS CodeBuildcodebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-mediumSelf-hosted2×4GBnorm $0.0059201126s$0.00501.2× cheaper1
Value score = weighted speed + price, adjusted for queue (the dial sets the weights). The price side is normalized for the shape the price buys (specs column): vCPU and RAM weighted by AWS Fargate’s per-resource prices (1 vCPU ≈ 9.1 GB), against a 2 vCPU / 8GB reference — so a provider selling 4 vCPU for the same $/min scores as cheaper, without pretending RAM is free. The table still shows the real $/min. RunsOn $/min = real EC2 .large spot in us-east-1 + EBS + license amortized (€300/yr). GitHub is the price baseline for the “× cheaper” column.

How to choose#

$/minWant the lowest bill? Sort by cheapest. Self-hosted spot on AWS lands ~5.9× under GitHub — the cost goes to your AWS account, not a middleman.
cpuWant raw speed? Sort by fastest CPU. Namespace, Blacksmith and RunsOn’s newest families (m8a / m8azn) lead x64 single-thread.
queueLatency-sensitive? Sort by lowest queue. GitHub starts fastest; for self-hosted, warm pools cut RunsOn queues to under ~10s.
ctrlWant control & isolation? Pick self-hosted. RunsOn keeps runners, logs, caches and secrets inside your own VPC — no third party touches your code. See networking options.

Deep dive (full data)#

Open full benchmark table with distributions

Includes per-runner distributions, CPU/queue percentiles, and provider metadata for the last 30 days.

# Provider CPU speed (p50) Queue time (p50) + 30d P90 trend Processor
1
Namespace SaaS
nscloud-ubuntu-24.04-amd64-2x8
$0.004/min 1.5x cheaper standard
p50: 4454p90: 4709
p50: 11.0sp90: 12.0s
AMD EPYC (x86_64)
US/Europe (might vary)
9 samples
2
Avrea SaaS
avrea-ubuntu-24.04-2-vcpu
$0.004/min 1.5x cheaper
p50: 4412p90: 4538
p50: 14.0sp90: 19.0s
AMD EPYC 4585PX 16-Core Processor(x86_64)
Dedicated hardware
9 samples
3
RunsOn Self-Hosted
runs-on,family=m8azn
$0.0012/min 5.1x cheaper spot
p50: 4265p90: 4274
p50: 24.0sp90: 49.0s
AMD EPYC 9R05 (x86_64)
AWS
8 samples
4
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404
$0.004/min 1.5x cheaper
p50: 4250p90: 4580
p50: 12.0sp90: 14.0s
AMD EPYC (x86_64)
Hetzner
9 samples

CPU 4000+
5
RunsOn Self-Hosted
runs-on,family=m8a
$0.0009/min 6.9x cheaper spot
p50: 3806p90: 3829
p50: 24.0sp90: 58.0s
AMD EPYC 9R45 (x86_64)
AWS
8 samples
6
Warpbuild SaaS
warp-ubuntu-2404-x64-2x
$0.004/min 1.5x cheaper
p50: 3699p90: 3777
p50: 9.0sp90: 11.0s
AMD Ryzen 9 7950X3D 16-Core Processor(x86_64)
Hetzner / AWS / BYOC
9 samples
7
Ubicloud SaaS
ubicloud-premium-2-ubuntu-2404
$0.0016/min 3.8x cheaper premium
p50: 3616p90: 3849
p50: 25.0sp90: 63.0s
AMD Ryzen 9 7950X3D 16-Core Processor(x86_64)
Hetzner (Germany)
9 samples

CPU 3500+
8
StarSling SaaS
starsling-ubuntu-24.04
$0.004/min 1.5x cheaper
p50: 3306p90: 3335
p50: 11.0sp90: 13.0s
AMD EPYC (x86_64)
Oracle Cloud
2 samples
9
RunsOn Self-Hosted
runs-on,family=m8i+r8i
$0.001/min 5.9x cheaper spot
p50: 3192p90: 3197
p50: 24.0sp90: 24.0s
Intel(R) Xeon(R) 6975P-C (x86_64)
AWS
8 samples

CPU 3000+
10
Ubicloud SaaS
ubicloud-standard-2-ubuntu-2404
$0.001/min 6.0x cheaper standard
p50: 2900p90: 2959
p50: 14.0sp90: 115.0s
AMD EPYC 9454P 48-Core Processor(x86_64)
Hetzner (Germany)
9 samples
11
RunsOn Self-Hosted
runs-on,family=c7a+m7a+r7a
$0.001/min 6.0x cheaper spot
p50: 2872p90: 2879
p50: 26.0sp90: 33.0s
AMD EPYC 9R14 (x86_64)
AWS
8 samples
12
RunsOn Self-Hosted
runs-on,family=m6a
$0.001/min 6.2x cheaper spot
p50: 2580p90: 2590
p50: 25.0sp90: 26.0s
AMD EPYC 7R13 Processor (x86_64)
AWS
8 samples
13
RunsOn Self-Hosted
runs-on,family=c7i+m7i+r7i
$0.0009/min 6.5x cheaper spot
p50: 2541p90: 2957
p50: 25.0sp90: 47.0s
Intel(R) Xeon(R) Platinum 8488C (x86_64)
AWS
8 samples

CPU 2500+
14
GitHub Official
github24-2cpu-x64, ubuntu-24.04
$0.006/min ≈ GitHub
p50: 2270p90: 2276
p50: 7.0sp90: 8.0s
AMD EPYC 7763 64-Core Processor(x86_64)
Azure
13 samples
15
GitHub Official
github24-2cpu-x64, ubuntu-24.04
$0.006/min ≈ GitHub
p50: 2193p90: 2196
p50: 6.0sp90: 6.0s
AMD EPYC 9V74 80-Core Processor(x86_64)
Azure
4 samples
16
AWS CodeBuild Self-Hosted
codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small
$0.005/min 1.2x cheaper
p50: 2148p90: 2154
p50: 25.0sp90: 32.0s
Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz (x86_64)
AWS
9 samples
17
AWS CodeBuild Self-Hosted
codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-medium
$0.005/min 1.2x cheaper
p50: 2011p90: 2035
p50: 26.0sp90: 31.0s
Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz (x86_64)
AWS
17 samples
# Provider CPU speed (p50) Queue time (p50) + 30d P90 trend Processor
1
Avrea SaaS
avrea-ubuntu-24.04-arm-2-vcpu
$0.012/min 2.4x pricier
p50: 4899p90: 5022
p50: 17.0sp90: 27.0s
Apple M5 Max + Virtualization
Dedicated hardware
8 samples
2
Namespace SaaS
nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true
$0.012/min 2.4x pricier premium
p50: 4603p90: 4920
p50: 14.0sp90: 18.0s
Apple M4 + Virtualization
US/Europe (might vary)
8 samples

CPU 4500+
3
RunsOn Self-Hosted
runs-on,family=m9g
$0.0009/min 5.5x cheaper spot
p50: 2467p90: 2472
p50: 24.0sp90: 45.0s
Neoverse-V3 (aarch64)
AWS
8 samples

CPU 2000+
4
RunsOn Self-Hosted
runs-on,family=c8g+m8g+r8g
$0.0009/min 5.7x cheaper spot
p50: 1945p90: 1947
p50: 25.0sp90: 28.0s
Neoverse-V2 (aarch64)
AWS
16 samples
5
Warpbuild SaaS
warp-ubuntu-latest-arm64-2x
$0.003/min 1.7x cheaper
p50: 1944p90: 1946
p50: 21.0sp90: 51.0s
Neoverse-V2 (aarch64)
Hetzner / AWS / BYOC
8 samples
6
GitHub Official
github24-2cpu-arm64
$0.005/min ≈ GitHub
p50: 1874p90: 1879
p50: 5.0sp90: 7.0s
Neoverse-N2 (aarch64)
Azure
8 samples
7
RunsOn Self-Hosted
runs-on,family=c7g+m7g+r7g
$0.001/min 5.1x cheaper spot
p50: 1559p90: 1564
p50: 26.0sp90: 28.0s
Neoverse-V1 (aarch64)
AWS
8 samples

CPU 1500+
8
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404-arm
$0.0025/min 2.0x cheaper
p50: 1354p90: 1369
p50: 20.0sp90: 22.0s
Ampere-1a (aarch64)
Hetzner
6 samples
9
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404-arm
$0.0025/min 2.0x cheaper
p50: 1308p90: 1327
p50: 18.0sp90: 20.0s
Neoverse-N1 (aarch64)
Hetzner
2 samples
10
Ubicloud SaaS
ubicloud-standard-2-arm-ubuntu-2404
$0.001/min 5.0x cheaper standard
p50: 1314p90: 1321
p50: 15.0sp90: 39.0s
Neoverse-N1 (aarch64)
Hetzner (Germany)
8 samples
11
Namespace SaaS
nscloud-ubuntu-24.04-arm64-2x8
$0.004/min 1.3x cheaper standard
p50: 1241p90: 1267
p50: 16.0sp90: 18.0s
Ampere-1a (aarch64)
US/Europe (might vary)
3 samples

What the data says#

Performance
  • Namespace, Blacksmith and RunsOn lead x64 single-thread.
  • Namespace leads arm64; RunsOn and Warpbuild follow. GitHub’s newer Cobalt CPUs are closer but not consistently available.
  • GitHub runs older CPUs overall, most visibly on x64.
Reliability & scaling
  • GitHub’s queue times are excellent for standard runners — and much improved for larger ones.
  • AWS scales better than Hetzner-backed fleets under load.
  • Some SaaS providers gate higher vCPU concurrency (and static egress IPs) behind requests or fees; self-hosted RunsOn and CodeBuild aren’t affected.
  • Variable CPU models on some providers (e.g. Ubicloud tiers) can affect reproducibility.
Security & infra
  • RunsOn is fully self-hosted in your AWS account — your IAM, your network, a dedicated GitHub App.
  • AWS CodeBuild is managed by AWS but runs in your account (shared GitHub App for registration).
  • GitHub runners are managed by GitHub on Azure; private access needs secrets or OIDC.
  • Namespace, Blacksmith, Warpbuild, Ubicloud and Depot are SaaS; control plane and registration aren’t fully yours.

Gap: detailed concurrency/scaling tests are still missing; they matter for high-volume CI/CD (thousands of jobs/day). RunsOn routinely handles more than 1M jobs every day.

Benchmark changelog#

Routine benchmark sample refreshes, design-only changes, SEO edits, and internal refactors are omitted. These are the public-facing changes that affected provider coverage, pricing assumptions, scoring, or data filtering.

  • Aug 2024 — The benchmark tracked CPU speed and queue time across the initial runner-provider set.
  • Oct 2024 — Results moved toward p50/p95 CPU and queue distributions, and restricted or unavailable provider rows were handled explicitly.
  • Jul 2025 — Provider summaries were revamped, and the median calculation was corrected.
  • Oct 2025 — RunsOn m8a family results were added.
  • Feb 2026 — The pricing-aware leaderboard was added, including provider pricing metadata, CPU-vs-price ranking, RunsOn EBS/license costs, and Cirrus monthly pricing normalization.
  • Feb 2026 — RunsOn family-specific pricing, m8azn, spot/on-demand handling, p50/p90 CPU and queue percentiles, queue penalties, value scoring fixes, and family exclusions were added.
  • Apr 2026 — BuildJet and Cirrus were removed from active benchmark/pricing coverage; Cirrus was removed after Cirrus Labs announced it was joining OpenAI and Cirrus Runners stopped accepting new customers.
  • May 2026 — Shipfox was removed and Ubicloud pricing was updated.
  • Jun 2026 — m9g was added, and value scoring started normalizing price by runner resources so differently sized runner shapes compare more fairly.
  • Jun 2026 — Avrea was added with published pay-as-you-go pricing and Apple M5 Max ARM labeling.
  • Jul 2026 — StarSling was added with published pay-as-you-go pricing for x64 Linux runners.
Fastest self-hosted, at ~5.9× lower cost.

The benchmark runs on the same RunsOn anyone can deploy. One CloudFormation stack, your account, ~10 minutes.

Note: this analysis is updated regularly. Things change quickly in this space, so make sure you do your own research as well.