Improve GitHub Actions Performance: Upgrade CPU

Published on August 1, 2025 | Written by Andreas

Speed matters! Waiting for code analysis, builds, and tests slows down developers. That’s why I’ve done some real-world performance tests of workflows orchestrated by GitHub Actions. Turns out, reducing waiting times by about 30 % is possible by switching from GitHub-hosted runners to self-hosted runners managed by HyperEnv on AWS. Read on to to learn more.

GitHub Runner S3 Cache: Turbocharge Your Self-Hosted Workflows on AWS

About the Benchmark

SoftEther VPN is a cross-platform multi-protocol VPN solution. Their job .github/workflows/linux.yml installs dependencies, compiles the code, builds packages, and executes tests. For the benchmark, I’ve cloned the repository SoftEtherVPN and changed its visibility from public to private. To avoid outliers, each benchmark test was repeated 10 times.

The default machine for a Linux job of a private repository comes with 2 vCPU and 7 GB of memory when using GitHub-hosted runners. Therefore, I’ve been using comparable EC2 instance types with 2 vCPUs and 8 GB memory: m5.large, m6i.large, m7i.large, and m7a.large.

Benchmark Results

Here are the results of the benchmark. Compared to the GitHub-hosted runner a self-hosted runner executed on an m7a.large instance managed by HyperEnv completes the job 29% faster.

RunnerDurationTime Savings
GitHub-hosted runner406 sec-
HyperEnv (m6i.large)388 sec5%
HyperEnv (m7i.large)366 sec10%
HyperEnv (m7a.large)288 sec29%

So what’s the reason for the difference? That’s a tricky question. The runners differ in terms of CPU, memory and I/O capabilities. Based on my analysis of the monitoring data, the CPU is the bottleneck in this benchmark.

RunnerCPU
GitHub-hosted runnerAMD EPYC 7763
HyperEnv (m6i.large)Intel(R) Xeon(R) Platinum 8375C
HyperEnv (m7i.large)Intel(R) Xeon(R) Platinum 8488C
HyperEnv (m7a.large)AMD EPYC 9R14

The m7a.large instance managed by HyperEnv clearly offers the most advanced CPU with the highest computing power. This explains the performance advantage of 29%.

Release HyperEnv 2.17.0

With the release 2.17.0 of HyperEnv (see release notes) we added support for the following EC2 instance types.

  • m6i.large: 2 vCPU, 8 GB memory
  • m6i.xlarge: 4 vCPU, 16 GB memory
  • m6i.2xlarge: 8 vCPU, 32 GB memory
  • m6i.4xlarge: 16 vCPU, 64 GB memory
  • m6i.8xlarge: 32 vCPU, 128 GB memory
  • m6i.12xlarge: 48 vCPU, 192 GB memory
  • m6i.16xlarge: 64 vCPU, 256 GB memory
  • m6i.24xlarge: 96 vCPU, 384 GB memory
  • m6i.32xlarge: 128 vCPU, 512 GB memory
  • m7i.large: 2 vCPU, 8 GB memory
  • m7i.xlarge: 4 vCPU, 16 GB memory
  • m7i.2xlarge: 8 vCPU, 32 GB memory
  • m7i.4xlarge: 16 vCPU, 64 GB memory
  • m7i.8xlarge: 32 vCPU, 128 GB memory
  • m7i.12xlarge: 48 vCPU, 192 GB memory
  • m7i.16xlarge: 64 vCPU, 256 GB memory
  • m7i.24xlarge: 96 vCPU, 384 GB memory
  • m7i.48xlarge: 192 vCPU, 768 GB memory
  • m7-iflex.large: 2 vCPU, 8 GB memory
  • m7-iflex.xlarge: 4 vCPU, 16 GB memory
  • m7-iflex.2xlarge: 8 vCPU, 32 GB memory
  • m7-iflex.4xlarge: 16 vCPU, 64 GB memory
  • m7-iflex.8xlarge: 32 vCPU, 128 GB memory
  • m7-iflex.12xlarge: 48 vCPU, 192 GB memory
  • m7-iflex.16xlarge: 64 vCPU, 256 GB memory
  • m7a.medium: 1 vCPU, 4 GB memory
  • m7a.large: 2 vCPU, 8 GB memory
  • m7a.xlarge: 4 vCPU, 16 GB memory
  • m7a.2xlarge: 8 vCPU, 32 GB memory
  • m7a.4xlarge: 16 vCPU, 64 GB memory
  • m7a.8xlarge: 32 vCPU, 128 GB memory
  • m7a.12xlarge: 48 vCPU, 192 GB memory
  • m7a.16xlarge: 64 vCPU, 256 GB memory
  • m7a.24xlarge: 96 vCPU, 384 GB memory
  • m7a.32xlarge: 128 vCPU, 512 GB memory
  • m7a.48xlarge: 192 vCPU, 768 GB memory

In case you are running an older version of HyperEnv, follow our update guide to be able to benefit from increased performance.

Accelerate with HyperEnv

Speed up your GitHub Actions jobs by about 30% as well. Follow our setup guide to get started. Afterward, all you need is to modify your GitHub Actions workflows, as shown in the following listing.

Warning: The m7a instance family is supported in the following AWS regions only: ap-northeast-1, ap-southeast-2, eu-central-1, eu-north-1, eu-south-2, eu-west-1, us-east-1, us-east-2, and us-west-2.

jobs:
  demo:
    runs-on: [hyperenv, hyperenv-config:instance=m7a.large]
    steps:
    - uses: actions/checkout@v4

Try HyperEnv today!

Self-hosting GitHub runners on AWS has never been easier.

Deploy in 10 min Book a demo