GitHub Actions CPU performance benchmarks

This guide compares CPU performance and queue times across GitHub Actions runners - including official GitHub runners, self-hosted solutions, and third-party providers. Real-world benchmarks show how each option performs to help select the optimal runner.
Providers included in the benchmark
Section titled “Providers included in the benchmark”Note: I’d love to benchmark Depot (hosted on AWS), but they forbid benchmarking their platform 🤷.
GitHub Actions CPU speed and queuing times
Section titled “GitHub Actions CPU speed and queuing times”Benchmarks are performed using the Passmark benchmarking tool ↗, using the CPU Single Threaded metric. The table displays the last 30 days of data, before the last updated date.
Key metrics such as the processor model, single-thread CPU speed, queue time, pricing, and the underlying infrastructure provider are compared. The CPU single-threaded rating is a crucial metric as it is the most significant factor (unless your job is massively parallel) in accelerating any of your workflows.
x64 / amd64 runners
Section titled “x64 / amd64 runners”(higher is better)
(lower is better)
- ghcr.io/cirruslabs/ubuntu-runner-amd64:24.04-md
AMD Ryzen 9 7950X3D 16-Core Processor (x86_64)
- Infra / ISP: HOS-696102
- Samples: 27
- warp-ubuntu-2404-x64-2x
AMD Ryzen 9 7950X3D 16-Core Processor (x86_64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 27
- nscloud-ubuntu-24.04-amd64-2x8
AMD EPYC (x86_64)
- Infra / ISP: Namespace Labs (might vary)
- Samples: 30
- buildjet-2vcpu-ubuntu-2204
AMD Ryzen 9 7950X3D 16-Core Processor (x86_64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 4
- blacksmith-2vcpu-ubuntu-2404
AMD EPYC (x86_64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 30
- ubicloud-premium-2-ubuntu-2404
AMD Ryzen 9 7950X3D 16-Core Processor (x86_64)
- Infra / ISP: HOS-1558733
- Samples: 30
CPU 3500+
- buildjet-2vcpu-ubuntu-2204
AMD Ryzen 9 5950X 16-Core Processor (x86_64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 26
- runs-on,family=r8i
Intel Xeon 6975P-C (x86_64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 9
- runs-on,family=r7iz
Intel Xeon Gold 6455B (x86_64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 31
CPU 3000+
- ubicloud-standard-2-ubuntu-2404
AMD EPYC 9454P 48-Core Processor (x86_64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 30
- runs-on,family=m7a
- runs-on,family=c7a
AMD EPYC 9R14 (x86_64)
- Infra / ISP: Amazon Data Services Northern Virginia
- Samples: 60
- runs-on,family=i7ie
Intel Xeon Platinum 8559C (x86_64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 31
- warp-ubuntu-2404-x64-2x
AMD EPYC 9R14 (x86_64)
- Infra / ISP: Amazon Data Services Northern Virginia
- Samples: 3
- runs-on,family=m7i
Intel Xeon Platinum 8488C (x86_64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 29
CPU 2500+
- ubuntu-24.04
- github24-16cpu-x64
AMD EPYC 7763 64-Core Processor (x86_64)
- Infra / ISP: Microsoft Corporation
- Samples: 60
CPU 2000+
- codebuild-ubuntu-8.0-medium
- codebuild-ubuntu-8.0-large
- codebuild-ubuntu-8.0-small
Intel Xeon Platinum 8275CL CPU @ 3.00GHz (x86_64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 84
arm64 / aarch64 runners
Section titled “arm64 / aarch64 runners”(higher is better)
(lower is better)
- nscloud-ubuntu-24.04-arm64-2x8,namespace-features:linux-on-apple-silicon=true
Apple M4 + Virtualization
- Infra / ISP: Namespace Labs (might vary)
- Samples: 29
CPU 4000+
- warp-ubuntu-2404-arm64-2x
Neoverse-V2 (aarch64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 29
- runs-on,family=r8g
- runs-on,family=m8g
Neoverse-V2 (aarch64)
- Infra / ISP: Amazon Technologies Inc.
- Samples: 58
- github24-2cpu-arm64
Neoverse-N2 (aarch64)
- Infra / ISP: Microsoft Corporation
- Samples: 3
- runs-on,family=m7g
Neoverse-V1 (aarch64)
- Infra / ISP: Amazon Data Services Northern Virginia
- Samples: 29
CPU 1500+
- github24-2cpu-arm64
Neoverse-N1 (aarch64)
- Infra / ISP: Microsoft Corporation
- Samples: 26
- blacksmith-2vcpu-ubuntu-2404-arm
Neoverse-N1 (aarch64)
- Infra / ISP: Hetzner Online GmbH
- Samples: 29
- ghcr.io/cirruslabs/ubuntu-runner-arm64:24.04-md
Neoverse-N1 (aarch64)
- Infra / ISP: HOS-696102
- Samples: 25
- ubicloud-standard-2-arm-ubuntu-2404
Neoverse-N1 (aarch64)
- Infra / ISP: HOS-1558733
- Samples: 28
- nscloud-ubuntu-24.04-arm64-2x8
Ampere-1a (aarch64)
- Infra / ISP: Namespace Labs (might vary)
- Samples: 12
Who has the fastest x64 runners?
Cirrus, Namespace, Blacksmith, Ubicloud (Premium), Warpbuild, followed by Buildjet (though Buildjet’s and Ubicloud’s CPU models can vary).
Who has the fastest arm64 runners?
Namespace (with Apple M4 + Virtualization), followed by RunsOn and Warpbuild, since it uses latest AWS Graviton4 processors. Hetzner-based providers use older ARM CPUs.
Who's the cheapest?
RunsOn and Ubicloud offer the best pricing, around 10x cheaper than GitHub. Premium Ubicloud runners are more expensive but still 5x cheaper than GitHub.
Observations
Section titled “Observations”Performance
Section titled “Performance”- Cirrus, Namespace, Blacksmith, Warpbuild, and some of Ubicloud’s runners fleet lead x64 performance with latest AMD CPUs. AWS-based providers are not as fast due to AWS being slow to adopt newer CPUs for x64 architecture. Hopefully some good news on that front in 2025?
- Namespace recently added support for Linux arm64 runners on top of the Apple virtualization framework, and it’s the fastest arm64 runner, although pricey. It’s followed by RunsOn and Warpbuild with Graviton4 CPUs. Latest GitHub Actions Cobalt CPUs (only for some runs, and mostly for private repositories) not far behind.
- GitHub uses older CPUs, especially for x64.
- AWS CodeBuild instances are slower than GitHub and more expensive.
Reliability & Scaling
Section titled “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.
- Hetzner providers (Buildjet, Ubicloud etc) require manual requests for higher concurrency, sometimes with extra fees.
- Buildjet’s and Ubicloud’s variable CPU models impact reproducibility.
- GitHub is the most expensive option (except for public repositories).
- RunsOn and Ubicloud (non-premium) are ~10x cheaper than GitHub.
- AWS CodeBuild pricing isn’t competitive.
Privacy & Security
Section titled “Privacy & Security”- GitHub Actions runners are managed by GitHub, and run on Azure. If your CI runners require access to private resources hosted elsewhere, you might need to expose some credentials as GitHub Actions secrets (ideally setup OIDC connections).
- RunsOn is fully self-hosted on your AWS infrastructure (with a dedicated GitHub App generated at runtime). You can also assign custom IAM policies to your runners so that you don’t need to pass any credentials around if you need access to other private AWS resources. Networking stack can also be fully customized according to your security preferences.
- AWS CodeBuild is a managed service from AWS. You need to register with a shared GitHub App. Other than that, everything stays on your AWS account.
- Namespace, Blacksmith, Cirrus, Warpbuild, Ubicloud, Depot are SaaS providers. You need to register with a shared GitHub App, and they manage the control plane entirely. Some allow you to self-host the runners in your own Cloud provider account, but the runner registration process (including the token generation, which gives access to the repository contents) are never under your control.
Missing from benchmark:
- Detailed concurrency/scaling tests. Important for high-volume CI/CD (thousands of jobs/day)
Note: this analysis is valid as of July 2025. Things change quickly in this space, so make sure you do your own research as well.