TechCompare LogoTechCompare

RunJob runner benchmarks and consumed CPU pricing

RunJob's Linux x64 sample uses the puzl-ubuntu-24.04 label and reports AMD EPYC 7502. The pricing model differs from a fixed machine-minute service: CPU and memory usage are metered separately, and the CPU charge follows consumed CPU time. A workflow label alone doesn't identify a reserved machine size or the plan used during this test.

By TechCompare · Updated

Measured configurations
1
CPU execution threads
1
Five accepted samples per runner

Why the tested size stays unfilled

RunJob describes dynamic CPU use and publishes plan-dependent per-job limits. The Free plan lists 12 vCPUs and Business lists 48, with custom Enterprise limits. The benchmark report doesn't record the plan or allocated CPU count. The table therefore shows dynamic allocation and reports the maximum published Business limit with its plan note, instead of presenting it as the measured size.

Read the benchmark in its own context

The one-thread CoreMark measurement can help identify serial CPU behavior. Its disk and cache stages describe the same controlled tests used by the suite, but they aren't a record of a production job's resource consumption. They also don't include a repository checkout, build, test, and artifact upload as one billed workflow. Use complete job usage records when deciding whether this billing model fits your workload.

Calculator

GitHub Actions runner CPU models, single thread CPU scores, disk, cache, and internet scores, and value per USD compute cost. Missing tests have no score.
RunnerCPUSingle threadCPU valueDiskCacheInternetCost/vCPU/minUSDMax vCPU
RunJob Linux x64

AMD EPYC 7502 32-Core

17,973
13.4M/USD
492.9
53.5
382.6
0.001348

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 tool

Measurement context

The published CPU rate is €0.00002 per consumed vCPU-second. Multiplying by 60 gives €0.0012 per consumed vCPU-minute. Memory is an additional €0.000001 per GB-second, equivalent to €0.00006 per GB-minute. The table converts the CPU rate to USD using the dated ECB reference rate shown below, while the original EUR rate remains available in the full details.

Verdict

Read RunJob's CPU rate as a usage meter. It can't be compared directly with the entire cost of a fixed two-vCPU runner minute. Estimating a job bill requires its consumed CPU and memory time, allowances, and plan.

More runner benchmark scenarios

Frequently asked questions

Are these independent GitHub Actions runner benchmarks?
TechCompare publishes measurements from its own runner benchmark suite. The results come from the supplied published reports, while provider documentation supplies hardware mappings, prices, and available sizes. Scores from provider marketing pages aren't used as test results.
Does a CoreMark score predict my build time?
No. CoreMark is a CPU microbenchmark running one execution thread. A full build also depends on parallelism, memory, disk, dependencies, cache behavior, and queue time. This snapshot doesn't measure complete application builds or queue delays.
How are disk, cache, and internet scores calculated?
Each score is a geometric mean of that runner's own measurements. Disk combines sequential read/write MiB/s with random read/write IOPS converted to MiB/s using the 4 KiB operation size. Cache combines save and restore MiB/s from one backend. By default, each runner uses its highest verified score across tested cache and artifact backends. Hover or open details to see the backend, or select a specific backend type. Internet combines available download and upload Mbps, or uses the single recorded direction. Protocol 7 reports speeds from actual payload bytes and elapsed time, including transfers that reach the time limit. Older timeout records use recorded bytes divided by the nominal limit. These fixed formulas have no ranking reference or upper score limit, so adding a faster runner doesn't change existing scores. CPU keeps its measured CoreMark iterations per second.
How is price per minute per vCPU calculated?
A fixed runner's quoted minute rate is divided by its billed vCPU count. Prices are shown in USD and are list or overage rates before allowances and extras. RunJob publishes EUR consumed CPU rates, which are converted using the dated ECB reference rate shown on the page. Its original rate stays in the details, and memory charges are additional. GitHub uses private standard rates, and Namespace shows overage with prepaid equivalents.
What does CPU value mean?
CPU value is the measured single thread CoreMark score divided by the USD cost per vCPU per minute. More billed vCPUs don't multiply the measured score. EUR compute rates are converted before calculating value, so every provider is in one USD ranking. K means thousand and M means million. Optional disk, cache, and internet value columns use the same score divided by rate formula. These ratios don't measure full build performance or predict the final bill.
Why is an exact CPU model sometimes missing?
Some virtual machines expose only AMD EPYC or aarch64. The table uses a provider mapping where documentation identifies a family, labels that evidence, and leaves undisclosed model numbers unconfirmed. Similar benchmark scores aren't enough to identify a processor.
Are missing tests counted as zero?
No. Internet transfers with a nonzero recorded byte count can supply a speed even if they reach the time limit. A blocked request or a timeout with no recorded bytes stays unscored. Disk uses verified sample medians with all four throughput components. The updated BuildPulse ARM disk result is included using its three completed samples, with the original counts in the details. Cache requires all three verified save and restore pairs. The table shows a dash when no score is available. Hover or open the row details to inspect the measurements.