-
Notifications
You must be signed in to change notification settings - Fork 221
Description
Recently on the Debian openQA instance we have a mixed set of tests that require either 2GB or 4GB RAM. One of the smaller worker machines has only 8GB available and is unable to handle 2 4GB-builds simultaneously, resulting in out-of-memory errors. If we are lucky, one of the 2GB builds is running there and all is fine.
Feature request: under the assumption that the openQA workers are the only users on the machine, extend the functionality of the scheduler to account for the amount of available RAM.
Existing code:
The workers have an attribute 'MEM_MAX', which is the total amount of memory on the worker machine. Each test has 'QEMURAM' set to the amount of memory that is required for QEMU.
The build can be scheduled to a worker when: MEM_MAX - SumOf(QEMURAM of active workers) - some overhead >= QEMURAM of new build
If this condition is not met, try the other workers. If none of the workers (currently) meet this condition, keep on the scheduled list
For now, I'll reduce the memory to about 3.5GB RAM, which will allow the two builds to be run in parallel again.