//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 ~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#
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.
cheaperfasterleaning faster
70% speed / 30% price
cpu × price × queuespot · us-east-1 · x64
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
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
| # | provider | type | specs | cpu | queue | price / min | value |
|---|---|---|---|---|---|---|---|
| 1 | Namespacenscloud-ubuntu-24.04-amd64-2x8 | SaaSstandard | 4×8GBnorm $0.0024 | 4453 | 12s | $0.00401.5× cheaper | 89 |
| 2 | RunsOn ✦family=m8azn | Self-hostedspot | 2×8GB | 4271 | 24s | $0.00125.1× cheaper | 86 |
| 3 | Blacksmithblacksmith-2vcpu-ubuntu-2404 | SaaS | 2×8GB | 4435 | 14s | $0.00401.5× cheaper | 79 |
| 4 | Avreaavrea-ubuntu-24.04-2-vcpu | SaaS | 2×8GB | 4441 | 24s | $0.00401.5× cheaper | 75 |
| 5 | RunsOn ✦family=m8a | Self-hostedspot | 2×8GB | 3799 | 25s | $0.00096.9× cheaper | 74 |
| 6 | Ubicloudubicloud-premium-2-ubuntu-2404 | SaaSpremium | 2×8GB | 3720 | 27s | $0.00163.8× cheaper | 68 |
| 7 | Warpbuildwarp-ubuntu-2404-x64-2x | SaaS | 2×7GB | 3703 | 11s | $0.00401.5× cheaper | 58 |
| 8 | RunsOn ✦family=m8i+r8i | Self-hostedspot | 2×8GB | 3196 | 25s | $0.00105.9× cheaper | 58 |
| 9 | Ubicloudubicloud-standard-2-ubuntu-2404 | SaaSstandard | 2×8GB | 2935 | 14s | $0.00106.0× cheaper | 54 |
| 10 | Ubicloudubicloud-standard-2-ubuntu-2404 | SaaSstandard | 2×8GB | 2923 | 15s | $0.00106.0× cheaper | 53 |
| 11 | RunsOn ✦family=c7a+m7a+r7a | Self-hostedspot | 2×8GB | 2876 | 28s | $0.00106.0× cheaper | 49 |
| 12 | RunsOn ✦family=c7i+m7i+r7i | Self-hostedspot | 2×8GB | 2599 | 27s | $0.00096.5× cheaper | 42 |
| 13 | RunsOn ✦family=c6a+m6a+r6a | Self-hostedspot | 2×8GB | 2584 | 27s | $0.00106.2× cheaper | 41 |
| 14 | GitHububuntu-24.04 | Official | 2×8GB | 2323 | 7s | $0.0060≈ GitHub | 9 |
| 15 | GitHubgithub24-2cpu-x64, ubuntu-24.04 | Official | 2×8GB | 2269 | 9s | $0.0060≈ GitHub | 7 |
| 16 | GitHububuntu-24.04, github24-2cpu-x64 | Official | 2×8GB | 2194 | 8s | $0.0060≈ GitHub | 5 |
| 17 | AWS CodeBuildcodebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-medium | Self-hosted | 2×4GBnorm $0.0059 | 2140 | 27s | $0.00501.2× cheaper | 4 |
| 18 | AWS CodeBuildcodebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium | Self-hosted | 2×4GBnorm $0.0059 | 2020 | 26s | $0.00501.2× cheaper | 1 |
| 19 | AWS CodeBuildcodebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-large | Self-hosted | 2×4GBnorm $0.0059 | 2015 | 28s | $0.00501.2× cheaper | 1 |
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: 4451p90: 4665 | p50: 12.0sp90: 14.0s | AMD EPYC (x86_64) US/Europe (might vary) 32 samples |
| 2 | Blacksmith SaaS blacksmith-2vcpu-ubuntu-2404 $0.004/min 1.5x cheaper | p50: 4430p90: 4617 | p50: 14.0sp90: 22.0s | AMD EPYC (x86_64) Hetzner 32 samples |
| 3 | Avrea SaaS avrea-ubuntu-24.04-2-vcpu $0.004/min 1.5x cheaper | p50: 4441p90: 4536 | p50: 24.0sp90: 24.0s | AMD EPYC 4585PX 16-Core Processor(x86_64) Dedicated hardware 3 samples |
| 4 | RunsOn Self-Hosted runs-on,family=m8azn $0.0012/min 5.1x cheaper spot | p50: 4271p90: 4276 | p50: 24.0sp90: 27.0s | AMD EPYC 9R05 (x86_64) AWS 31 samples |
| CPU 4000+ | ||||
| 5 | RunsOn Self-Hosted runs-on,family=m8a $0.0009/min 6.9x cheaper spot | p50: 3799p90: 3816 | p50: 25.0sp90: 42.0s | AMD EPYC 9R45 (x86_64) AWS 31 samples |
| 6 | Ubicloud SaaS ubicloud-premium-2-ubuntu-2404 $0.0016/min 3.8x cheaper premium | p50: 3720p90: 3827 | p50: 27.0sp90: 32.0s | AMD Ryzen 9 7950X3D 16-Core Processor(x86_64) Hetzner (Germany) 31 samples |
| 7 | Warpbuild SaaS warp-ubuntu-2404-x64-2x $0.004/min 1.5x cheaper | p50: 3690p90: 3841 | p50: 11.0sp90: 33.0s | AMD Ryzen 9 7950X3D 16-Core Processor(x86_64) Hetzner / AWS / BYOC 32 samples |
| CPU 3500+ | ||||
| 8 | RunsOn Self-Hosted runs-on,family=m8i+r8i $0.001/min 5.9x cheaper spot | p50: 3196p90: 3202 | p50: 25.0sp90: 29.0s | Intel(R) Xeon(R) 6975P-C (x86_64) AWS 30 samples |
| CPU 3000+ | ||||
| 9 | Ubicloud SaaS ubicloud-standard-2-ubuntu-2404 $0.001/min 6.0x cheaper standard | p50: 2922p90: 2950 | p50: 14.0sp90: 33.0s | AMD EPYC 9454 48-Core Processor(x86_64) Hetzner (Germany) 4 samples |
| 10 | Ubicloud SaaS ubicloud-standard-2-ubuntu-2404 $0.001/min 6.0x cheaper standard | p50: 2923p90: 2959 | p50: 15.0sp90: 38.0s | AMD EPYC 9454P 48-Core Processor(x86_64) Hetzner (Germany) 28 samples |
| 11 | RunsOn Self-Hosted runs-on,family=c7a+m7a+r7a $0.001/min 6.0x cheaper spot | p50: 2876p90: 2880 | p50: 28.0sp90: 31.0s | AMD EPYC 9R14 (x86_64) AWS 31 samples |
| 12 | RunsOn Self-Hosted runs-on,family=c7i+m7i+r7i $0.0009/min 6.5x cheaper spot | p50: 2597p90: 2892 | p50: 27.0sp90: 29.0s | Intel(R) Xeon(R) Platinum 8488C (x86_64) AWS 30 samples |
| 13 | RunsOn Self-Hosted runs-on,family=m6a $0.001/min 6.2x cheaper spot | p50: 2584p90: 2589 | p50: 27.0sp90: 36.0s | AMD EPYC 7R13 Processor (x86_64) AWS 30 samples |
| CPU 2500+ | ||||
| 14 | GitHub Official ubuntu-24.04 $0.006/min ≈ GitHub | p50: 2323p90: 2332 | p50: 7.0sp90: 9.0s | Intel(R) Xeon(R) Platinum 8370C CPU @ 2.80GHz (x86_64) Azure 3 samples |
| 15 | GitHub Official github24-2cpu-x64, ubuntu-24.04 $0.006/min ≈ GitHub | p50: 2269p90: 2276 | p50: 9.0sp90: 11.0s | AMD EPYC 7763 64-Core Processor(x86_64) Azure 34 samples |
| 16 | GitHub Official ubuntu-24.04, github24-2cpu-x64 $0.006/min ≈ GitHub | p50: 2194p90: 2199 | p50: 8.0sp90: 11.0s | AMD EPYC 9V74 80-Core Processor(x86_64) Azure 27 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: 2140p90: 2154 | p50: 27.0sp90: 36.0s | Intel(R) Xeon(R) Platinum 8275CL CPU @ 3.00GHz (x86_64) AWS 57 samples |
| 18 | AWS CodeBuild Self-Hosted codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium $0.005/min 1.2x cheaper | p50: 2014p90: 2033 | p50: 26.0sp90: 29.0s | Intel(R) Xeon(R) Platinum 8223CL CPU @ 3.00GHz (x86_64) AWS 4 samples |
| 19 | AWS CodeBuild Self-Hosted codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-large $0.005/min 1.2x cheaper | p50: 2015p90: 2030 | p50: 28.0sp90: 32.0s | Intel(R) Xeon(R) Platinum 8124M CPU @ 3.00GHz (x86_64) AWS 35 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: 5014p90: 5017 | p50: 22.0sp90: 42.0s | Apple M5 Max + Virtualization Dedicated hardware 5 samples |
| CPU 5000+ | ||||
| 2 | Namespace SaaS nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true $0.012/min 2.4x pricier premium | p50: 3926p90: 4940 | p50: 14.0sp90: 22.0s | Apple M4 + Virtualization US/Europe (might vary) 32 samples |
| CPU 3500+ | ||||
| 3 | RunsOn Self-Hosted runs-on,family=m9g $0.0009/min 5.5x cheaper spot | p50: 2469p90: 2472 | p50: 25.0sp90: 45.0s | Neoverse-V3 (aarch64) AWS 14 samples |
| CPU 2000+ | ||||
| 4 | Warpbuild SaaS warp-ubuntu-latest-arm64-2x $0.003/min 1.7x cheaper | p50: 1944p90: 1946 | p50: 20.0sp90: 46.0s | Neoverse-V2 (aarch64) Hetzner / AWS / BYOC 32 samples |
| 5 | RunsOn Self-Hosted runs-on,family=c8g+m8g+r8g $0.0009/min 5.7x cheaper spot | p50: 1946p90: 1948 | p50: 27.0sp90: 30.0s | Neoverse-V2 (aarch64) AWS 62 samples |
| 6 | GitHub Official github24-2cpu-arm64 $0.005/min ≈ GitHub | p50: 1874p90: 1878 | p50: 7.0sp90: 10.0s | Neoverse-N2 (aarch64) Azure 31 samples |
| 7 | RunsOn Self-Hosted runs-on,family=c7g+m7g+r7g $0.001/min 5.1x cheaper spot | p50: 1559p90: 1564 | p50: 28.0sp90: 31.0s | Neoverse-V1 (aarch64) AWS 31 samples |
| CPU 1500+ | ||||
| 8 | Blacksmith SaaS blacksmith-2vcpu-ubuntu-2404-arm $0.0025/min 2.0x cheaper | p50: 1361p90: 1377 | p50: 21.0sp90: 27.0s | Ampere-1a (aarch64) Hetzner 24 samples |
| 9 | Blacksmith SaaS blacksmith-2vcpu-ubuntu-2404-arm $0.0025/min 2.0x cheaper | p50: 1326p90: 1330 | p50: 20.0sp90: 24.0s | Neoverse-N1 (aarch64) Hetzner 8 samples |
| 10 | Ubicloud SaaS ubicloud-standard-2-arm-ubuntu-2404 $0.001/min 5.0x cheaper standard | p50: 1313p90: 1320 | p50: 16.0sp90: 18.0s | Neoverse-N1 (aarch64) Hetzner (Germany) 32 samples |
| 11 | Namespace SaaS nscloud-ubuntu-24.04-arm64-2x8 $0.004/min 1.3x cheaper standard | p50: 1241p90: 1267 | p50: 17.0sp90: 30.0s | Ampere-1a (aarch64) US/Europe (might vary) 18 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 ~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.