Guides
How to size runners for Python test suites
pytest is running on one core while the runner has eight idle.
4 min read
pytest is running on one core while the runner has eight idle.
Why it happens
pytest is serial by default, so runner size makes no difference until xdist is enabled.
How to fix it
- Enable pytest -n auto before changing runner size — otherwise cores sit idle
- 8 vCPU is a good default once xdist is on
- Group fixture-sharing tests with --dist loadgroup to avoid setup thrash
- Integration tests waiting on a database want fewer cores and faster disk
Your next build could be twice as fast, at half the price
Start free. Migrating away is the same one line, and we publish that diff too.
Related
How to scale self-hosted runnersSelf-hosted runners either queue at peak or sit idle and expensive.How to use runner groupsAny repository can schedule jobs on any runner.How to design a runner label strategyLabels grew organically and nobody knows which to use.Hosted or BYOC: how to chooseYou are unsure whether to use hosted runners or deploy into your own cloud.