Tenki runner benchmarks for Linux and macOS
The supplied Tenki report covers Linux x64 and macOS ARM64, each requested with two vCPUs and 4 GB of RAM. Both use one execution thread with the same protocol 7 workload, five CPU and disk samples, and a 512 MiB cache payload. Linux pins its thread to one logical CPU. The macOS thread can move between CPUs, so the operating system and scheduling behavior remain part of the comparison.
By TechCompare · Updated
Price the requested two-vCPU configuration
Tenki publishes $0.002 per vCPU-minute for Linux x64 and $0.020 for macOS. At two vCPUs, the tested labels therefore cost $0.004 and $0.040 per runner minute before credits and extra storage. The value rankings use the normalized per-vCPU rates. The standard published size ladders reach 16 vCPUs for Linux x64 and eight for macOS. Larger Linux x64 configurations require a separate quote. Those maximum sizes were not measured here.
Keep the tested cache backends separate
Linux verified three save and restore pairs for each of GitHub Actions cache and Tenki hosted Actions cache. Every restore ran in a separate runner job after the publication gap, with an exact key and payload checksum check. macOS verified three GitHub pairs. The best cache score chooses one complete backend for each row, using that same backend for both save and restore speed. Switching to provider archive cache leaves the macOS row without a result.
Read partial network measurements with their source
Both network stages have partial status because some transfers reached the 60-second limit. Protocol 7 still records speed from actual transferred bytes and elapsed time, so the supplied download and upload speeds remain usable. Both runners have three download and three upload samples against Sharktech Amsterdam. These figures describe one HTTP stream to that endpoint. They do not establish the speed of every package registry or the runtime of a complete build.
Calculator
| RunnerRunner | CPUCPU scoreSingle thread | CPU valueCPU value | DiskDisk score | CacheCache score | InternetInternet score | Cost/vCPU/minCost/vCPU/minUSD | Max vCPUMax runner vCPU |
|---|---|---|---|---|---|---|---|
| Tenki macOS arm64 Apple M4 Pro | 44,979 | 2.2M/USD | 305.5 | 43 | 171.9 | 0.02 | 8 |
| Tenki Linux x64 AMD EPYC 7B13 64-Core | 29,356 | 14.7M/USD | 535.6 | 161.3 | 142.9 | 0.002 | 16 |
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.1208 (ECB, 2026-10-15).
Open the full GitHub Actions runner benchmark toolMeasurement context
The Linux guest reports AMD EPYC 7B13, while macOS reports Apple M4 Pro. These are the CPU strings from the measured guests. The CPU medians are 29,355.68 and 44,978.82 iterations per second. The macOS result has 17.28% variation across its five accepted samples, compared with 0.42% on Linux. Open the row details for the complete range and compiler.
Verdict
Compare the measured configuration with the platform your workflow needs. Tenki Linux has verified GitHub and native cache results. The macOS report contains GitHub cache only. Its native cache was excluded from this benchmark, so the table leaves that backend unscored.
More runner benchmark scenarios
Frequently asked questions
Are these independent GitHub Actions runner benchmarks?
Does a CoreMark score predict my build time?
How are disk, cache, and internet scores calculated?
How is price per minute per vCPU calculated?
What does CPU value mean?
Why is an exact CPU model sometimes missing?
Are missing tests counted as 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 ➜