Fastest GitHub Actions Runners: CPU Speed
GitHub Actions runners comparison across CPU speed, queue time, and pricing. Benchmarks x64 and arm64 runners, including self-hosted options like RunsOn and AWS CodeBuild plus third-party providers.
This guide compares Linux GitHub Actions runner CPU performance, queue times, and pricing across official GitHub runners, self-hosted solutions, and third-party providers. Real-world benchmarks show how each option performs to help select the optimal runner.
TL;DR
Best value
RunsOn, Namespace, Shipfox, Cirrus, and Blacksmith score highly in this benchmark. Each one having specific strengths and weaknesses depending on your use cases.
Best self-hosted
RunsOn is the cheapest self-hosted option and the fastest in this dataset among self-hosted runners. AWS CodeBuild is slower and more expensive.
Fastest CPU
x64: Shipfox, Namespace, Blacksmith, and RunsOn lead the pack. arm64: Cirrus and Namespace lead, followed by RunsOn, Shipfox, and Warpbuild.
Lowest queue
GitHub is lowest at ~8s (x64) and ~6s (arm64). Warpbuild and Namespace are close behind on x64.
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
Note: I'd love to benchmark Depot (hosted on AWS), but they forbid benchmarking their platform.
Leaderboard
Last updated:
Benchmarks use Linux runners only, the Passmark single-thread metric, and the last 30 days of data.
Settings
How scoring works
baseScore = (w_speed × speedScore + w_cost × costScore) / (w_speed + w_cost)speedScore = (cpu - cpuLow) / (cpuHigh - cpuLow), costScore = (priceHigh - price) / (priceHigh - priceLow) (both clamped 0-1)
queueAdj% = -min(15, max(0, queue - queueMin) × 0.5)
finalScore = baseScore × (1 + queueAdj% / 100)
| # | Provider | CPU p50 | Queue p50 | Price / min | Value score |
|---|---|---|---|---|---|
| 1 | RunsOnSelf-Hostedspot ✨ runs-on,family=m8azn AWS | 4266 | 27.0s | $0.0015/min | 81 |
| 2 | NamespaceSaaSstandard nscloud-ubuntu-24.04-amd64-2x8 US/Europe | 4550 | 12.0s | $0.0040/min | 80 |
| 3 | CirrusSaaS ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-xs, ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md Hetzner per runner monthly | 3967 | 19.0s | $0.0010/min | 79 |
| 4 | ShipfoxSaaS shipfox-2vcpu-ubuntu-2404 OVH / GCP | 4528 | 18.0s | $0.0040/min | 77 |
| 5 | BlacksmithSaaS blacksmith-2vcpu-ubuntu-2404 Hetzner | 4484 | 20.0s | $0.0040/min | 75 |
| 6 | RunsOnSelf-Hostedspot ✨ runs-on,family=m8a AWS | 3816 | 26.0s | $0.0009/min | 73 |
| 7 | UbicloudSaaSpremium ubicloud-premium-2-ubuntu-2404 Hetzner (Germany) | 3614 | 31.0s | $0.0016/min | 63 |
| 8 | WarpbuildSaaS warp-ubuntu-2404-x64-2x Hetzner / AWS / BYOC | 3725 | 12.0s | $0.0040/min | 59 |
| 9 | RunsOnSelf-Hostedspot ✨ runs-on,family=m8i+r8i AWS | 3194 | 29.0s | $0.0009/min | 57 |
| 10 | UbicloudSaaSstandard ubicloud-standard-2-ubuntu-2404 Hetzner (Germany) | 2903 | 16.0s | $0.0008/min | 54 |
| 11 | RunsOnSelf-Hostedspot ✨ runs-on,family=r7iz AWS | 3071 | 29.0s | $0.0011/min | 53 |
| 12 | RunsOnSelf-Hostedspot ✨ runs-on,family=c7a+m7a+r7a AWS | 2878 | 30.0s | $0.0011/min | 48 |
| 13 | RunsOnSelf-Hostedspot ✨ runs-on,family=c7i+m7i+r7i AWS | 2821 | 31.0s | $0.0009/min | 48 |
| 14 | RunsOnSelf-Hostedspot ✨ runs-on,family=i7ie AWS | 2729 | 32.0s | $0.0016/min | 42 |
| 15 | RunsOnSelf-Hostedspot ✨ runs-on,family=c6a+m6a+r6a AWS | 2583 | 31.0s | $0.0010/min | 41 |
| 16 | GitHubOfficial ubuntu-24.04, github24-2cpu-x64 Azure | 2326 | 11.0s | $0.0060/min | 11 |
| 17 | GitHubOfficial github24-2cpu-x64, ubuntu-24.04 Azure | 2280 | 9.0s | $0.0060/min | 10 |
| 18 | GitHubOfficial ubuntu-24.04, github24-2cpu-x64 Azure | 2203 | 9.0s | $0.0060/min | 8 |
| 19 | AWS CodeBuildSelf-Hosted codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small, codebuild-ubuntu-8.0-large AWS | 1987 | 28.0s | $0.0050/min | 7 |
| 20 | AWS CodeBuildSelf-Hosted codebuild-ubuntu-8.0-large, codebuild-ubuntu-8.0-medium, codebuild-ubuntu-8.0-small AWS | 1912 | 29.0s | $0.0050/min | 5 |
Settings
How scoring works
baseScore = (w_speed × speedScore + w_cost × costScore) / (w_speed + w_cost)speedScore = (cpu - cpuLow) / (cpuHigh - cpuLow), costScore = (priceHigh - price) / (priceHigh - priceLow) (both clamped 0-1)
queueAdj% = -min(15, max(0, queue - queueMin) × 0.5)
finalScore = baseScore × (1 + queueAdj% / 100)
| # | Provider | CPU p50 | Queue p50 | Price / min | Value score |
|---|---|---|---|---|---|
| 1 | CirrusSaaS ghcr.io/cirruslabs/ubuntu-runner-arm64:24.04-md Hetzner per runner monthly | 3968 | 23.0s | $0.0021/min | 89 |
| 2 | NamespaceSaaSpremium nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true US/Europe | 3861 | 16.0s | $0.0120/min | 65 |
| 3 | RunsOnSelf-Hostedspot ✨ runs-on,family=c8g+m8g+r8g AWS | 1946 | 30.0s | $0.0008/min | 42 |
| 4 | ShipfoxSaaS shipfox-2vcpu-ubuntu-2404-arm OVH / GCP | 2083 | 22.0s | $0.0040/min | 40 |
| 5 | WarpbuildSaaS warp-ubuntu-latest-arm64-2x Hetzner / AWS / BYOC | 1944 | 36.0s | $0.0030/min | 36 |
| 6 | GitHubOfficial github24-2cpu-arm64 Azure | 1874 | 8.0s | $0.0050/min | 35 |
| 7 | RunsOnSelf-Hostedspot ✨ runs-on,family=c7g+m7g+r7g AWS | 1559 | 30.0s | $0.0008/min | 34 |
| 8 | UbicloudSaaSstandard ubicloud-standard-2-arm-ubuntu-2404 Hetzner (Germany) | 1315 | 16.0s | $0.0008/min | 30 |
| 9 | BlacksmithSaaS blacksmith-2vcpu-ubuntu-2404-arm Hetzner | 1327 | 27.0s | $0.0025/min | 25 |
| 10 | NamespaceSaaSstandard nscloud-ubuntu-24.04-arm64-2x8 US/Europe | 1255 | 16.0s | $0.0040/min | 21 |
| 11 | GitHubOfficial github24-2cpu-arm64 Azure | 1333 | 10.0s | $0.0050/min | 21 |
How to choose a GitHub Actions runner
- If you want the lowest price, compare $/min.
- If you want speed, look at the configured CPU percentile (currently p50 single‑thread).
- If you want the lowest queue, look at the configured queue percentile (currently p50). GitHub is usually best, followed by Warpbuild and Namespace.
- If you want predictability, favor providers with stable hardware (some Hetzner‑based fleets can vary CPUs).
- If you want control, pick self‑hosted (RunsOn, AWS CodeBuild) and keep data in your cloud account. RunsOn keeps runners inside your AWS VPC; 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 | |||
|---|---|---|---|---|
| 1 | Namespace SaaS nscloud-ubuntu-24.04-amd64-2x8 $0.004/min 1.5x cheaper standard CPU speed p50: 4550 Queue time p50: 12.0s | |||
| 2 | Shipfox SaaS shipfox-2vcpu-ubuntu-2404 $0.004/min 1.5x cheaper CPU speed p50: 4528 Queue time p50: 18.0s | |||
| CPU 4500+ | ||||
| 3 | Blacksmith SaaS blacksmith-2vcpu-ubuntu-2404 $0.004/min 1.5x cheaper CPU speed p50: 4484 Queue time p50: 20.0s | |||
| 4 | RunsOn Self-Hosted runs-on,family=m8azn $0.0015/min 4.0x cheaper spot CPU speed p50: 4266 Queue time p50: 27.0s | |||
| CPU 4000+ | ||||
| 5 | Cirrus SaaS ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-xs, ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md $0.001/min 5.8x cheaper per runner monthly CPU speed p50: 3967 Queue time p50: 19.0s | |||
| 6 | RunsOn Self-Hosted runs-on,family=m8a $0.0009/min 6.3x cheaper spot CPU speed p50: 3815 Queue time p50: 26.0s | |||
| 7 | Warpbuild SaaS warp-ubuntu-2404-x64-2x $0.004/min 1.5x cheaper CPU speed p50: 3714 Queue time p50: 12.0s | |||
| 8 | Ubicloud SaaS ubicloud-premium-2-ubuntu-2404 $0.0016/min 3.8x cheaper premium CPU speed p50: 3593 Queue time p50: 31.0s | |||
| CPU 3500+ | ||||
| 9 | RunsOn Self-Hosted runs-on,family=m8i+r8i $0.0009/min 6.5x cheaper spot CPU speed p50: 3194 Queue time p50: 29.0s | |||
| 10 | RunsOn Self-Hosted runs-on,family=r7iz $0.0011/min 5.3x cheaper spot CPU speed p50: 3070 Queue time p50: 28.0s | |||
| CPU 3000+ | ||||
| 11 | Ubicloud SaaS ubicloud-standard-2-ubuntu-2404 $0.0008/min 7.5x cheaper standard CPU speed p50: 2903 Queue time p50: 16.0s | |||
| 12 | RunsOn Self-Hosted runs-on,family=c7a+m7a+r7a $0.0011/min 5.4x cheaper spot CPU speed p50: 2878 Queue time p50: 30.0s | |||
| 13 | RunsOn Self-Hosted runs-on,family=c7i+m7i+r7i $0.0009/min 6.6x cheaper spot CPU speed p50: 2801 Queue time p50: 30.0s | |||
| 14 | RunsOn Self-Hosted runs-on,family=i7ie $0.0016/min 3.8x cheaper spot CPU speed p50: 2719 Queue time p50: 32.0s | |||
| 15 | RunsOn Self-Hosted runs-on,family=m6a $0.001/min 5.8x cheaper spot CPU speed p50: 2583 Queue time p50: 31.0s | |||
| CPU 2500+ | ||||
| 16 | GitHub Official ubuntu-24.04, github24-2cpu-x64 $0.006/min ≈ GitHub CPU speed p50: 2321 Queue time p50: 7.0s | |||
| 17 | GitHub Official github24-2cpu-x64, ubuntu-24.04 $0.006/min ≈ GitHub CPU speed p50: 2280 Queue time p50: 9.0s | |||
| 18 | GitHub Official ubuntu-24.04, github24-2cpu-x64 $0.006/min ≈ GitHub CPU speed p50: 2198 Queue time p50: 8.0s | |||
| CPU 2000+ | ||||
| 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 CPU speed p50: 1986 Queue time p50: 28.0s | |||
| 20 | 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 CPU speed p50: 1911 Queue time p50: 29.0s | |||
| # | Provider | |||
|---|---|---|---|---|
| 1 | Cirrus SaaS ghcr.io/cirruslabs/ubuntu-runner-arm64:24.04-md $0.0021/min 3.8x cheaper per runner monthly CPU speed p50: 3968 Queue time p50: 23.0s | |||
| 2 | Namespace SaaS nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true $0.012/min 2.4x pricier premium CPU speed p50: 3861 Queue time p50: 16.0s | |||
| CPU 3500+ | ||||
| 3 | Shipfox SaaS shipfox-2vcpu-ubuntu-2404-arm $0.004/min 1.3x cheaper CPU speed p50: 2083 Queue time p50: 22.0s | |||
| CPU 2000+ | ||||
| 4 | RunsOn Self-Hosted runs-on,family=c8g+m8g+r8g $0.0008/min 6.0x cheaper spot CPU speed p50: 1946 Queue time p50: 30.0s | |||
| 5 | Warpbuild SaaS warp-ubuntu-latest-arm64-2x $0.003/min 1.7x cheaper CPU speed p50: 1944 Queue time p50: 35.0s | |||
| 6 | GitHub Official github24-2cpu-arm64 $0.005/min ≈ GitHub CPU speed p50: 1874 Queue time p50: 8.0s | |||
| 7 | RunsOn Self-Hosted runs-on,family=c7g+m7g+r7g $0.0008/min 5.9x cheaper spot CPU speed p50: 1559 Queue time p50: 30.0s | |||
| CPU 1500+ | ||||
| 8 | GitHub Official github24-2cpu-arm64 $0.005/min ≈ GitHub CPU speed p50: 1333 Queue time p50: 9.0s | |||
| 9 | Blacksmith SaaS blacksmith-2vcpu-ubuntu-2404-arm $0.0025/min 2.0x cheaper CPU speed p50: 1327 Queue time p50: 27.0s | |||
| 10 | Ubicloud SaaS ubicloud-standard-2-arm-ubuntu-2404 $0.0008/min 6.3x cheaper standard CPU speed p50: 1315 Queue time p50: 16.0s | |||
| 11 | Namespace SaaS nscloud-ubuntu-24.04-arm64-2x8 $0.004/min 1.3x cheaper standard CPU speed p50: 1255 Queue time p50: 16.0s | |||
Methodology & data sources
- Leaderboard and deep dive use the configured CPU/queue percentiles (currently p50/p50). CPU is Passmark single-thread; queue is time-to-start in seconds.
- Data window is the last 30 days before the last updated date.
- Pricing is normalized to $/min.
- Providers can vary hardware over time (especially Hetzner-based fleets).
Observations
Performance takeaways
- Shipfox, Namespace, Blacksmith, and RunsOn lead x64 single‑thread performance.
- Cirrus and Namespace lead arm64; Shipfox, RunsOn, and Warpbuild follow. GitHub’s newer Cobalt CPUs are closer but not consistently available.
- GitHub uses older CPUs overall, especially on x64.
Reliability & Scaling
- GitHub queue times are very good for standard runners. Used to be minutes for larger ones, but GitHub has improved their queue system.
- AWS provides better scalability than Hetzner-based providers.
- Third-party SaaS providers may require manual requests for higher vCPU concurrency, sometimes with extra fees. Same for static egress IPs. Self-hosted runners like RunsOn and AWS CodeBuild are not affected by this.
- Variable CPU models on some providers (for example Ubicloud tiers) can impact reproducibility.
Security & infra notes
- GitHub Actions runners are managed by GitHub and run on Azure. Access to private resources often requires secrets or OIDC.
- RunsOn is fully self-hosted in your AWS account with a dedicated GitHub App; IAM policies and networking are fully under your control.
- AWS CodeBuild is managed by AWS, runs in your account, and uses a shared GitHub App for registration.
- Namespace, Blacksmith, Cirrus, Warpbuild, Ubicloud, Depot, Shipfox are SaaS providers; some offer BYOC, but the control plane and runner registration are not fully under your control.
Gaps
- 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.
Note: this analysis is valid as of February 2026. Things change quickly in this space, so make sure you do your own research as well.