Upgrading the underlying operating system for the Docker executor - 18.04 to 20.04

I want to provide an update to all of our customers on how this went and the observed performance improvements. At CircleCI, we strive to make sure that the underlying infrastructure that runs our customer workloads is up to date, as is best practice across the industry. This roll-out of an updated underlying OS and associated kernel is one example that successfully enables us to maintain up-to-date systems and high Quality of Service.

The OS upgrade had an added benefit of improving spin-up performance for jobs that use our Docker executor. To understand the improvements, a little bit of context is required to understand how we define “slowness” in our systems. For reference, below are two of the subtasks that are a part of the “container spin-up” step and how we define “slow” for each one:

  • Extract: Extract steps are entirely dependent on the resources available to the VM running Docker. We define 10 MiB/s to be a good indicator that extract performance has degraded enough to cause noticeable user impact.
  • Create: For create steps, we set a target that containers should take no longer than 10 seconds to create.

The OS upgrade has resulted in 47% fewer tasks with a “slow" create step and 47% fewer tasks with a “slow" extract step across all jobs that use the Docker executor.

Feel free to reach out to me with any questions or observations you’re seeing with the latest upgrade.