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#
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.
70% speed / 30% price
who's who
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.
| # | provider | type | specs | cpu | queue | price / min | value |
|---|---|---|---|---|---|---|---|
| 1 | Namespacenscloud-ubuntu-24.04-amd64-2x8 | SaaSstandard | 4×8GBnorm $0.0024 | 4454 | 11s | $0.00401.5× cheaper | 89 |
| 2 | RunsOn ✦family=m8azn | Self-hostedspot | 2×8GB | 4268 | 24s | $0.00125.1× cheaper | 85 |
| 3 | Avreaavrea-ubuntu-24.04-2-vcpu | SaaS | 2×8GB | 4412 | 14s | $0.00401.5× cheaper | 78 |
| 4 | Blacksmithblacksmith-2vcpu-ubuntu-2404 | SaaS | 2×8GB | 4250 | 12s | $0.00401.5× cheaper | 74 |
| 5 | RunsOn ✦family=m8a | Self-hostedspot | 2×8GB | 3811 | 25s | $0.00096.9× cheaper | 74 |
| 6 | Ubicloudubicloud-premium-2-ubuntu-2404 | SaaSpremium | 2×8GB | 3616 | 25s | $0.00163.8× cheaper | 65 |
| 7 | Warpbuildwarp-ubuntu-2404-x64-2x | SaaS | 2×7GB | 3699 | 9s | $0.00401.5× cheaper | 58 |
| 8 | RunsOn ✦family=m8i+r8i | Self-hostedspot | 2×8GB | 3192 | 24s | $0.00105.9× cheaper | 56 |
| 9 | Ubicloudubicloud-standard-2-ubuntu-2404 | SaaSstandard | 2×8GB | 2900 | 14s | $0.00106.0× cheaper | 51 |
| 10 | RunsOn ✦family=c7a+m7a+r7a | Self-hostedspot | 2×8GB | 2875 | 26s | $0.00106.0× cheaper | 47 |
| 11 | StarSlingstarsling-ubuntu-24.04 | SaaS | 2×8GB | 3335 | 13s | $0.00401.5× cheaper | 47 |
| 12 | RunsOn ✦family=c6a+m6a+r6a | Self-hostedspot | 2×8GB | 2584 | 25s | $0.00106.2× cheaper | 40 |
| 13 | RunsOn ✦family=c7i+m7i+r7i | Self-hostedspot | 2×8GB | 2543 | 25s | $0.00096.5× cheaper | 39 |
| 14 | GitHubgithub24-2cpu-x64, ubuntu-24.04 | Official | 2×8GB | 2270 | 7s | $0.0060≈ GitHub | 5 |
| 15 | GitHubgithub24-2cpu-x64, ubuntu-24.04 | Official | 2×8GB | 2196 | 6s | $0.0060≈ GitHub | 2 |
| 16 | AWS CodeBuildcodebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small | Self-hosted | 2×4GBnorm $0.0059 | 2148 | 25s | $0.00501.2× cheaper | 1 |
| 17 | AWS CodeBuildcodebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-medium | Self-hosted | 2×4GBnorm $0.0059 | 2011 | 26s | $0.00501.2× cheaper | 1 |
.large spot in us-east-1 + EBS + license amortized (€300/yr). GitHub is the price baseline for the “× cheaper” column.How to choose#
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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
| # | 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 |
| 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 |
| 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) |
| 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) |
| 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) |
| 6 | GitHub Official github24-2cpu-arm64 $0.005/min ≈ GitHub | p50: 1874p90: 1879 | p50: 5.0sp90: 7.0s | Neoverse-N2 (aarch64) |
| 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) |
| 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) |
| 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) |
| 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) |
| 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) |
What the data says#
- –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.
- –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.
- –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.
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.