self-host →

//benchmarks · github actions runners · cpu

the fastest github actions runners, by the numbers.

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 ~7.3× 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) · 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 → 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, 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
#providertypecpuqueueprice / minvalue
1RunsOn family=m8aznSelf-hostedspot426926s$0.00115.5× cheaper88
2Namespacenscloud-ubuntu-24.04-amd64-2x8SaaSstandard436713s$0.00401.5× cheaper80
3Blacksmithblacksmith-2vcpu-ubuntu-2404SaaS448216s$0.00401.5× cheaper79
4RunsOn family=m8aSelf-hostedspot379028s$0.00106.3× cheaper75
5Ubicloudubicloud-premium-2-ubuntu-2404SaaSpremium368328s$0.00163.8× cheaper68
6Warpbuildwarp-ubuntu-2404-x64-2xSaaS373713s$0.00401.5× cheaper61
7RunsOn family=m8i+r8iSelf-hostedspot319227s$0.00106.0× cheaper59
8Ubicloudubicloud-standard-2-ubuntu-2404SaaSstandard291118s$0.00106.0× cheaper54
9Ubicloudubicloud-standard-2-ubuntu-2404SaaSstandard292233s$0.00106.0× cheaper50
10RunsOn family=c7a+m7a+r7aSelf-hostedspot287629s$0.00105.7× cheaper49
11RunsOn family=c7i+m7i+r7iSelf-hostedspot272029s$0.00106.3× cheaper46
12RunsOn family=c6a+m6a+r6aSelf-hostedspot258429s$0.00106.0× cheaper42
13GitHububuntu-24.04Official232210s$0.0060≈ GitHub9
14AWS CodeBuildcodebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-smallSelf-hosted214229s$0.00501.2× cheaper9
15GitHubgithub24-2cpu-x64, ubuntu-24.04Official226910s$0.0060≈ GitHub7
16AWS CodeBuildcodebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-mediumSelf-hosted202031s$0.00501.2× cheaper5
17GitHububuntu-24.04, github24-2cpu-x64Official21959s$0.0060≈ GitHub5
18AWS CodeBuildcodebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-smallSelf-hosted2013326s$0.00501.2× cheaper5
Value score = weighted speed + price, adjusted for queue (the dial sets the weights). 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 ~7.3× 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
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404
$0.004/min 1.5x cheaper
p50: 4482p90: 4669
p50: 16.0sp90: 73.0s
AMD EPYC (x86_64)
Hetzner
27 samples
2
Namespace SaaS
nscloud-ubuntu-24.04-amd64-2x8
$0.004/min 1.5x cheaper standard
p50: 4367p90: 4609
p50: 13.0sp90: 28.0s
AMD EPYC (x86_64)
US/Europe (might vary)
27 samples
3
RunsOn Self-Hosted
runs-on,family=m8azn
$0.0011/min 5.5x cheaper spot
p50: 4265p90: 4282
p50: 26.0sp90: 76.0s
AMD EPYC 9R05 (x86_64)
AWS
26 samples

CPU 4000+
4
RunsOn Self-Hosted
runs-on,family=m8a
$0.001/min 6.3x cheaper spot
p50: 3786p90: 3821
p50: 27.0sp90: 78.0s
AMD EPYC 9R45 (x86_64)
AWS
26 samples
5
Warpbuild SaaS
warp-ubuntu-2404-x64-2x
$0.004/min 1.5x cheaper
p50: 3737p90: 3877
p50: 13.0sp90: 45.0s
AMD Ryzen 9 7950X3D 16-Core Processor(x86_64)
Hetzner / AWS / BYOC
27 samples
6
Ubicloud SaaS
ubicloud-premium-2-ubuntu-2404
$0.0016/min 3.8x cheaper premium
p50: 3683p90: 3850
p50: 28.0sp90: 51.0s
AMD Ryzen 9 7950X3D 16-Core Processor(x86_64)
Hetzner (Germany)
27 samples

CPU 3500+
7
RunsOn Self-Hosted
runs-on,family=m8i+r8i
$0.001/min 6.0x cheaper spot
p50: 3192p90: 3201
p50: 27.0sp90: 64.0s
Intel(R) Xeon(R) 6975P-C (x86_64)
AWS
25 samples

CPU 3000+
8
Ubicloud SaaS
ubicloud-standard-2-ubuntu-2404
$0.001/min 6.0x cheaper standard
p50: 2922p90: 2935
p50: 33.0sp90: 39.0s
AMD EPYC 9454 48-Core Processor(x86_64)
Hetzner (Germany)
3 samples
9
Ubicloud SaaS
ubicloud-standard-2-ubuntu-2404
$0.001/min 6.0x cheaper standard
p50: 2887p90: 2957
p50: 18.0sp90: 119.0s
AMD EPYC 9454P 48-Core Processor(x86_64)
Hetzner (Germany)
24 samples
10
RunsOn Self-Hosted
runs-on,family=c7a+m7a+r7a
$0.001/min 5.7x cheaper spot
p50: 2876p90: 2879
p50: 29.0sp90: 80.0s
AMD EPYC 9R14 (x86_64)
AWS
27 samples
11
RunsOn Self-Hosted
runs-on,family=c7i+m7i+r7i
$0.001/min 6.3x cheaper spot
p50: 2720p90: 2928
p50: 29.0sp90: 49.0s
Intel(R) Xeon(R) Platinum 8488C (x86_64)
AWS
25 samples
12
RunsOn Self-Hosted
runs-on,family=m6a
$0.001/min 6.0x cheaper spot
p50: 2583p90: 2590
p50: 29.0sp90: 79.0s
AMD EPYC 7R13 Processor (x86_64)
AWS
26 samples

CPU 2500+
13
GitHub Official
ubuntu-24.04
$0.006/min ≈ GitHub
p50: 2322p90: 2324
p50: 10.0sp90: 14.0s
Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (x86_64)
Azure
3 samples
14
GitHub Official
github24-2cpu-x64, ubuntu-24.04
$0.006/min ≈ GitHub
p50: 2269p90: 2276
p50: 10.0sp90: 16.0s
AMD EPYC 7763 64-Core Processor(x86_64)
Azure
33 samples
15
GitHub Official
ubuntu-24.04, github24-2cpu-x64
$0.006/min ≈ GitHub
p50: 2195p90: 2199
p50: 9.0sp90: 11.0s
AMD EPYC 9V74 80-Core Processor(x86_64)
Azure
17 samples
16
AWS CodeBuild Self-Hosted
codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small
$0.005/min 1.2x cheaper
p50: 2142p90: 2152
p50: 29.0sp90: 33.0s
Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz (x86_64)
AWS
40 samples
17
AWS CodeBuild Self-Hosted
codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium
$0.005/min 1.2x cheaper
p50: 2020p90: 2031
p50: 31.0sp90: 78.0s
Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz (x86_64)
AWS
39 samples
18
AWS CodeBuild Self-Hosted
codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small
$0.005/min 1.2x cheaper
p50: 1921p90: 2013
p50: 29.0sp90: 326.0s
Intel(R) Xeon(R) Platinum 8223CL CPU @ 3.00GHz (x86_64)
AWS
2 samples
# Provider CPU speed (p50) Queue time (p50) + 30d P90 trend Processor
1
Namespace SaaS
nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true
$0.012/min 2.4x pricier premium
p50: 3848p90: 4116
p50: 17.0sp90: 45.0s
Apple M4 + Virtualization
US/Europe (might vary)
27 samples

CPU 3500+
2
Warpbuild SaaS
warp-ubuntu-latest-arm64-2x
$0.003/min 1.7x cheaper
p50: 1944p90: 1945
p50: 22.0sp90: 44.0s
Neoverse-V2 (aarch64)
Hetzner / AWS / BYOC
27 samples
3
RunsOn Self-Hosted
runs-on,family=c8g+m8g+r8g
$0.001/min 5.1x cheaper spot
p50: 1946p90: 1947
p50: 29.0sp90: 62.0s
Neoverse-V2 (aarch64)
AWS
54 samples
4
GitHub Official
github24-2cpu-arm64
$0.005/min ≈ GitHub
p50: 1874p90: 1878
p50: 9.0sp90: 11.0s
Neoverse-N2 (aarch64)
Azure
23 samples
5
RunsOn Self-Hosted
runs-on,family=c7g+m7g+r7g
$0.0009/min 5.3x cheaper spot
p50: 1559p90: 1564
p50: 30.0sp90: 45.0s
Neoverse-V1 (aarch64)
AWS
27 samples

CPU 1500+
6
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404-arm
$0.0025/min 2.0x cheaper
p50: 1366p90: 1377
p50: 24.0sp90: 92.0s
Ampere-1a (aarch64)
Hetzner
21 samples
7
GitHub Official
github24-2cpu-arm64
$0.005/min ≈ GitHub
p50: 1333p90: 1334
p50: 10.0sp90: 63.0s
Neoverse-N1 (aarch64)
Azure
4 samples
8
Blacksmith SaaS
blacksmith-2vcpu-ubuntu-2404-arm
$0.0025/min 2.0x cheaper
p50: 1323p90: 1332
p50: 21.0sp90: 84.0s
Neoverse-N1 (aarch64)
Hetzner
6 samples
9
Ubicloud SaaS
ubicloud-standard-2-arm-ubuntu-2404
$0.001/min 5.0x cheaper standard
p50: 1313p90: 1319
p50: 17.0sp90: 39.0s
Neoverse-N1 (aarch64)
Hetzner (Germany)
27 samples
10
Namespace SaaS
nscloud-ubuntu-24.04-arm64-2x8
$0.004/min 1.3x cheaper standard
p50: 1250p90: 1266
p50: 18.0sp90: 21.0s
Ampere-1a (aarch64)
US/Europe (might vary)
16 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.

fastest self-hosted, at ~7.3× 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.