Skip to content

Feature Request: Use MEM_MAX and QEMURAM in the schedulerΒ #6400

@rclobus

Description

@rclobus

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions