Back to all blogs

Benchmark: Linux kernel builds 3-68x faster on Avrea than GitHub Actions

On GitHub Actions, a Linux kernel build takes 27 minutes 23 seconds. On Avrea, the same build, with the same two vCPUs: 9 minutes 3 seconds, 24 seconds with a warm cache.

Leo Lännenmäki
12 May 2026
Benchmark: Linux kernel builds 3-68x faster on Avrea than GitHub Actions

Why the Linux kernel

The Linux kernel is one of the most well known open source C codebases. It is also very large at over 40M lines of code. Building the kernel from scratch is a commonly used benchmark to measure the speed of a system.

How we ran the test

We used the same runner spec (2 vCPU, 7.8 GiB, Ubuntu 24.04) and the same kernel commit for both Avrea and GitHub. We ran make defconfig && make -j2. defconfig is used to configure the build and -j2 to set the number of parallel compile/link processes to two since we ran the test on two vCPUs.

GitHub Actions Avrea
Runner label ubuntu-24.04 avrea-ubuntu-latest-2-vcpu
vCPU 2 2
RAM 7.8Gi 7.8Gi

For the cached run, we used ccache. On Avrea ccache is configured automatically to use Avrea’s build cache as the backing store.

GitHub Actions has no equivalent cache service, although you could wire GitHub Actions cache to ccache using an adapter. That approach has two challenges: 1) GHA cache is not very fast (see how we made GHA cache fast), and 2) GHA cache is much better suited for a small amount of large files than thousands and thousands of small files generated by a c compiler.

Below is a self-contained example workflow of what we are measuring.

name: "Linux Kernel"

on:
  workflow_dispatch:

env:
  PROJECT_REPO: "https://github.com/torvalds/linux.git"
  PROJECT_TAG: "v6.19"

jobs:
  build:
    runs-on: avrea-ubuntu-latest-2-vcpu
    env:
      CCACHE_COMPILERCHECK: content
    steps:
      - name: Clone project
        run: git clone --depth 1 --branch ${{ env.PROJECT_TAG }} ${{ env.PROJECT_REPO }} linux

      - name: Install build deps
        run: sudo apt-get update && sudo apt-get install -y ccache flex bison libelf-dev libssl-dev bc

      - name: Build
        working-directory: linux
        run: |
          make defconfig
          make -j2

Results

GitHub Actions Avrea Speedup
No cache 27m 23s 9m 3s 3x
With cache n/a 24.1s 68x

Hardware alone makes the build 3x faster. ccache with Avrea’s build cache makes a warm build finish in 24 seconds.

Why it's faster

The build is clearly CPU bound

The hardware (the 3x)

As the chart above shows, a no-cache kernel build basically maxes out any amount of CPU cores you have available. The build also writes tens of thousands of object files to /tmp, which the link step then reads, so a fast disk doesn’t hurt either.

Avrea’s 2 vCPU runner gets a score of ~6500 in single-core sysbench. GitHub gets ~3700. Disk write speed difference is even bigger: ~4 GB/s on Avrea, ~220 MB/s on GitHub.

The cache (the 68x)

ccache hashes each compilation’s inputs (the preprocessed source, compiler flags, etc.) and caches the output. If a compilation’s hash matches later, ccache hands back the cached object and the compiler never runs.

Kernel builds are well-suited to ccache. Between reasonable commits, most translation units receive identical preprocessor output, so the warm-run hit rate stays very high.

Avrea’s build cache is co-located with the runners, so every ccache lookup reads from a nearby object store. The whole build finishes in 24 seconds. It’s important to note here that the cache stays warm between runs, so subsequent commits/pushes build fast because the code is mostly the same as on the previous run.

The alternative - more hardware (the 27x)

Another way to make the build fast is just to throw more hardware at it. On an avrea-ubuntu-latest-32-vcpu machine the build takes 60s without any caching. In the openbenchmarking.org ranking it sits just below the Intel Core Ultra 7 270k Plus’s 53s. The 270k is Intel’s current flagship gaming CPU.

On Avrea you get both: fast hardware and out-of-the-box caching to make your builds go really fast.

Other benchmarks in this series

About Avrea

Avrea is a drop-in replacement for GitHub Actions runners. Update the runs-on label in your workflow and the build moves over.

Runs come with CPU and memory metrics, searchable log history, and a way to SSH into the running VM.

See pricing or start free on Avrea →