Skip to content

Faster CI: Use Larger Runners#2068

Merged
felixge merged 9 commits into
mainfrom
felix.geisendoerfer/PROF-7836-faster-ci-use-large-runner
Jun 26, 2023
Merged

Faster CI: Use Larger Runners#2068
felixge merged 9 commits into
mainfrom
felix.geisendoerfer/PROF-7836-faster-ci-use-large-runner

Conversation

@felixge

@felixge felixge commented Jun 25, 2023

Copy link
Copy Markdown
Member

What does this PR do?

  1. Use large runners for the test-core, test-contrib and parametric-tests CI jobs.
  2. Enqueue test-contrib before test-core by relocating it in the YAML file.
  3. Add a comment indicating that using large runners for "System Tests" didn't provide a noticeable benefit. We'll have to investigate other approaches for speeding up that pipeline.

As a result median CI time should be reduced from ~13.5 minutes to ~7.5 minutes (rough guess based on a few runs). We'll have to wait for a couple weeks before we can analyze the new P95 latency (I don't feel like writing a script to trigger hundreds of CI jobs now 😅).

Before After
CleanShot 2023-06-25 at 16 27 47@2x CleanShot 2023-06-25 at 16 27 13@2x

Motivation

Using larger runners allows our tests to run faster because we're testing many packages, and go test automatically builds and executes packages in parallel. The larger runners we use have 16 vCPUs vs the default of 2 vCPUs provided by GitHub.

Enqueuing test-contrib before test-core achieves optimal scheduling when our standby runner is available. In that case test-contrib starts executing right away, while test-core has to wait for another runner to spin up. But since test-core is much faster, it ends up finishing at roughly the same time as test-contrib 🥳. We could also consider assigning a large runner to our lint job, but based on the current timing this wouldn't provide a significant latency benefit. See example below.

CleanShot 2023-06-25 at 16 19 21@2x

See internal Faster CI for dd-trace-go 🚀 google doc for more information.

Describe how to test/QA your changes

Reviewer's Checklist

  • Changed code has unit tests for its functionality.
  • If this interacts with the agent in a new way, a system test has been added.

@pr-commenter

pr-commenter Bot commented Jun 25, 2023

Copy link
Copy Markdown

Benchmarks

Benchmark execution time: 2023-06-25 21:07:22

Comparing candidate commit aa14747 in PR branch felix.geisendoerfer/PROF-7836-faster-ci-use-large-runner with baseline commit 3ca9166 in branch main.

Found 0 performance improvements and 0 performance regressions! Performance is the same for 24 metrics, 0 unstable metrics.

@felixge felixge changed the title larger runners Faster CI: Use Larger Runners Jun 25, 2023
@felixge
felixge marked this pull request as ready for review June 25, 2023 14:45
@felixge
felixge requested a review from a team as a code owner June 25, 2023 14:45
This was referenced Jun 25, 2023
felixge added 2 commits June 25, 2023 22:52
This reverts commit 4aae4c5.

Putting this job on the large runners screws the build scheduling for
test-contrib. Let's not do it for now.

@ahmed-mez ahmed-mez left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🚀

@felixge
felixge merged commit 1330a36 into main Jun 26, 2023
@felixge
felixge deleted the felix.geisendoerfer/PROF-7836-faster-ci-use-large-runner branch June 26, 2023 08:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants