GitHub Actions runners with the best disk performance
Blacksmith Linux x64 leads the measured results at 1,331.6 composite MiB/s. 26 of 26 configurations have a score. This ranks the imported tests, not full workflow runtime.
Checkouts, dependency trees, compiler outputs, and temporary files can keep a runner busy after its CPU work is done. This ranking combines sequential and random disk measurements from our independent tests into one fixed score. The fastest scored configurations appear first across Linux, Windows, macOS, and the tested architectures. The summary and table are rebuilt from the shared results whenever the site is built.
By TechCompare · Updated
Current leaders
Results imported 2026-10-10. Pricing checked 2026-10-10. Higher is better. All operating systems and architectures are included. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Calculator
Ranked runner results
| RunnerRunner | DiskDisk score | Cost/vCPU/minCost/vCPU/minUSD | Max vCPUMax runner vCPU |
|---|---|---|---|
| Blacksmith Linux x64 AMD EPYC (model hidden) | 1,331.6 | 0.002 | 32 |
| Avrea Linux arm64 Apple M5 Max | 1,239.3 | 0.006 | 16 |
| Avrea macOS arm64 Apple M5 Max | 1,022 | 0.01 | 16 |
| Namespace macOS arm64 Apple M4 Pro | 948.7 | 0.015 | 16 |
| Avrea Linux x64 AMD EPYC 4585PX 16-Core | 864.5 | 0.002 | 32 |
| Blacksmith Windows x64 AMD EPYC 4565P 16-Core | 708.9 | 0.004 | 32 |
| GitHub macOS arm64 Apple M2 Pro | 656.7 | 0.0207 | 5 |
| StarSling Linux x64 AMD EPYC (model hidden) | 559.1 | 0.002 | 64 |
| RunJob Linux x64 AMD EPYC 7502 32-Core | 492.9 | 0.0013 | 48 |
| Avrea Windows x64 AMD EPYC 4585PX 16-Core | 335.3 | 0.004 | 16 |
| Blacksmith Linux arm64 ARM64 (model undisclosed) | 320.8 | 0.0013 | 32 |
| Namespace Linux x64 AMD EPYC (model hidden) | 297.3 | 0.0015 | 64 |
| Blacksmith macOS arm64 Apple M4 Pro | 262.4 | 0.0133 | 12 |
| Ubicloud Linux x64 AMD Ryzen 9 7950X3D 16-Core | 243.7 | 0.001 | 30 |
| Namespace Linux arm64 AmpereOne family (SKU undisclosed) | 197.8 | 0.0015 | 32 |
| GitHub macOS x64 Intel Core i7-8700B | 91.9 | 0.0155 | 12 |
| GitHub Linux x86 AMD EPYC 7763 64-Core | 81.2 | 0.003 | 96 |
| Ubicloud Linux arm64 Ampere Altra Q80-30 | 80.6 | 0.0006 | 30 |
| GitHub Windows x64 AMD EPYC 7763 64-Core | 76.7 | 0.005 | 96 |
| GitHub Linux arm64 Microsoft Cobalt 100 | 73.1 | 0.0025 | 64 |
| GitHub Windows x86 AMD EPYC 7763 64-Core | 68.6 | 0.005 | 96 |
| GitHub Linux x64 AMD EPYC 9V74 80-Core | 67 | 0.003 | 96 |
| GitHub Windows arm64 Cobalt 100 | 35 | 0.005 | 64 |
| Latchkey Linux x64 AMD EPYC 7R13 | 28.3 | 0.0013 | 16 |
| BuildPulse Linux x64 AMD EPYC 9R45 | 28.2 | 0.002 | 64 |
| BuildPulse Linux arm64 AWS Graviton (gen undisclosed) | 20.1 | 0.0013 | 64 |
Single thread CPU: CoreMark iterations/s. Disk and cache: composite MiB/s. Internet: composite Mbps. Value: score ÷ USD cost/vCPU/min. K means thousand, M means million. Higher is better. Cache uses each runner's best tested cache or artifact backend. Limits: maximum runner vCPU. Prices and value use USD. RunJob's EUR rate is converted at €1 = $1.1206 (ECB, 2026-10-09).
Open the full GitHub Actions runner benchmark toolFrom four measurements to one disk score
The score is the geometric mean of sequential read MiB/s, sequential write MiB/s, random read throughput, and random write throughput. Random operations transfer 4 KiB each, so their IOPS are divided by 256 to convert them to MiB/s. The result is labeled composite MiB/s. It is a summary of four workloads, not a promise that one file copies at exactly that rate. No dataset maximum or 0-to-100 scale is used.
Verified disk samples and score coverage
Disk scores use medians from fully verified samples with all four throughput components. The updated BuildPulse ARM result is included using its three completed samples, with five attempted and requested. The full tool retains those counts. Other incomplete results require acceptance before receiving a score. Unscored configurations remain after the scored runners, and a missing score is not a zero. A later complete test makes a configuration eligible automatically.
Read bandwidth and latency in context
This suite measures controlled file workloads on the tested guest. It does not establish sustained performance for every file size, filesystem, concurrency level, or free-space condition. The reported CPU, image, and exact runner tag help identify the configuration. The maximum vCPU column describes the published runner family, not a disk scaling test. If cost matters more than the highest score, compare the separate disk value ranking.
Measurement context
Sequential bandwidth and random IOPS describe different access patterns. A large archive is not the same workload as thousands of small files. The geometric mean gives equal weight to the four test components after they are expressed in the same unit. A high combined score can still include a weaker individual measurement, which is why the full tool keeps every read and write figure available.
Verdict
Use the combined disk ranking to find candidates, then inspect the component closest to your workload. For file-heavy jobs, measure the real checkout, extraction, build, and cleanup stages. Cache and internet rankings answer separate questions about transferring data onto the runner.
More runner benchmark scenarios
Frequently asked questions
Which runner currently leads for disk performance?
Do these runner rankings update automatically?
Are all operating systems and architectures included?
Does a missing result mean a runner scored zero?
Related tools
Data Transfer Calculator
Estimate transfer times for files over USB, WiFi, Ethernet, and more.
Use tool ➜Memory and Storage Throughput Visualizer
Visualize the massive speed difference between CPU cache, RAM, and storage.
Use tool ➜RAM Latency Calculator
Convert DDR3/DDR4/DDR5 timings (CL, tRCD, tRP, tRAS) into true latency in nanoseconds.
Use tool ➜