action #183101
opencoordination #103944: [saga][epic] Scale up: More robust handling of diverse infrastructure with varying performance
coordination #157144: [epic] Groups of worker classes: Regions, locations, etc.
Prevent overloading of test resources with special test variables
0%
Description
Motivation¶
Some tests generate heavy disk, CPU or memory load and multiple tests of this type running in parallel may cause worker overload that'll lead to timeouts. See #179080 for example. In order to restrict these stress tests to reasonable resource use openQA should offer a feature to restrict scheduling "too many, too heavy" jobs in parallel where "heavy" is not based on qemu parameters but rather test maintainers setting a certain test variable, e.g. WORKER_CLASS=size-heavy
Acceptance Criteria¶
- AC1: Overloading of external resources (e.g. hypervisors) can be prevented by test maintainers
- AC2: By default test schedulers
Suggestions¶
- Should we use special worker class?
- From a discussion between okurz and mkittler we could extend the openQA worker with multiple features for workers ini so that we can go from
[global]
WORKER_CLASS=location-here,my_special
[1]
WORKER_CLASS=foo,location-here,my_special
[2]
WORKER_CLASS=foo,location-here,my_special
[3]
WORKER_CLASS=foo,location-here,my_special
to something like this
[global]
WORKER_CLASS=location-here,my_special
[1-2,5-8]
WORKER_CLASS=foo # concatenates with the global one to WORKER_CLASS=foo,location-here,my_special
[5] ## additional override for 5 only
WORKER_CLASS= # delete global entries
WORKER_CLASS=bar,location-elsewhere
The worker class concatenation from global and specific instances would be a breaking feature. As alternative one could consider WORKER_CLASS+=
to explicitly concatenate to previously defined values
Updated by okurz 7 days ago
- Copied from action #182891: Add special worker class for stress tests on PPC64LE and s390x size:S added