Skip to main content
All application workloads

GitHub self-hosted runner benchmarks

A pinned build and test workflow with separate cold and warm dependency caches.

Capacity is the highest tested load that met the correctness, latency, and error limits in every repeat. Only matching recipes from the past 90 days are compared.

8 plans by location
Provider, plan and locationMedian cold + warm pairs/hourProvision rangeEvidencePlan priceCapacity / USDp95 rangep95 variation
Vultr · High Performance AMD 1 vCPU / 1 GB · Los Angeles, USNo qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
6.0 USD/month UnavailableUnavailableInsufficient evidence
UpCloud · Starter 1 vCPU / 1 GB · Sydney #1No qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
3.5 EUR/month UnavailableUnavailableInsufficient evidence
UpCloud · Premium 1 vCPU / 1 GB · San Jose #1No qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
6.0 EUR/month UnavailableUnavailableInsufficient evidence
Amazon Lightsail · Nano, 1 TB transfer · Virginia (us-east-1)No qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
5.0 USD/month UnavailableUnavailableInsufficient evidence
Amazon Lightsail · Memory Optimized 2Xlarge, 7 TB transfer · Virginia (us-east-1)No qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
294.0 USD/month UnavailableUnavailableInsufficient evidence
Amazon Lightsail · Compute Optimized Large, 5 TB transfer · Oregon (us-west-2)No qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
42.0 USD/month UnavailableUnavailableInsufficient evidence
NODED.CLOUD · VPS I KVM · BulgariaNo qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
5.5 EUR/month UnavailableUnavailableInsufficient evidence
Gcore · Standard G0 1 vCPU / 2 GB · Sao PauloNo qualifying loadNo qualifying measurement 0/1 provisions met the workload limits · preliminary
Latest run
22.464 EUR/month UnavailableUnavailableInsufficient evidence

Value uses the lowest qualifying capacity observed across provisions and the current USD plan price. A failed provision prevents a value score or a match for required capacity. Results remain preliminary until at least five provisions span 24 hours. Plan prices exclude optional services and any unpriced extras; other currencies are shown without an assumed exchange rate.

Each CI job completes a cold and a warm build-and-test pass. Capacity is completed pairs per hour; consistency uses elapsed job time with one job at a time. Checkout and tool setup are included, and queue wait is excluded. Cold and warm stage times are recorded separately.

Test recipe and limits
{
  "revision": 1,
  "images": {
    "runner": {
      "ref": "ghcr.io/actions/actions-runner@sha256:4ffadc0002b2581327e06101fc8c06cd189232baf79fe561fac9caeb76f5e807",
      "source": "ghcr.io/actions/actions-runner:latest, resolved 2026-10-18"
    },
    "redis": {
      "ref": "ghcr.io/rackcensus/redis@sha256:6e9101032a2126aeeb4b1e862ac77d2fcf26b831ae37e5ff2e69169f82ddd411",
      "compressed_bytes": 55575867,
      "unpacked_bytes": 145969869
    }
  },
  "minimum_memory_mb": 8192,
  "unit": "cold + warm pairs/hour",
  "dataset": {
    "cache_modes": [
      "cold",
      "warm"
    ],
    "concurrency": 1,
    "source_commit": "fcbb99c43d0550dc045ce701b53ae0d69afecf46",
    "node_version": "22.20.0"
  },
  "slo": {
    "p95_ms": 3600000,
    "p99_ms": 3600000,
    "max_error_rate": 0.01,
    "min_completion_ratio": 0.99,
    "max_driver_cpu_ratio": 0.85,
    "max_scheduler_lag_ms": 50
  },
  "measurement_kind": "batch",
  "capacity_multiplier": 3600,
  "key": "github_runner",
  "rates": [
    1
  ],
  "warmup_seconds": 0,
  "duration_seconds": 1,
  "repeats": 2,
  "timeout_seconds": 3600,
  "max_inflight": 1,
  "name": "GitHub self-hosted runner",
  "description": "A pinned build and test workflow with separate cold and warm dependency caches.",
  "profile": "full",
  "implementation_sha256": "83f66245883ae11c4365d0236280954685db52fbfc45fac23ee39c6a077767ae",
  "architecture": "linux/amd64",
  "github": {
    "configured": false,
    "error": "set RUNNER_BENCHMARK_REPOSITORY and RUNNER_BENCHMARK_REVISION to the repository and commit hosting benchmark-runner.yml"
  },
  "digest": "e7601bedf450f2c1f11a2917d736ce07ffee72fa1e427c908572c1d3343eb27d"
}