Assign jobs to runners to fill up their concurrent value.
Problem to solve
Currently a fleet of registered runners requests jobs and jobs are assigned "FIFO". In a scenario with multiple runners (with concurrent>1), some runners will have assigned only one job, so that resources (CPU, RAM) are under-utilised for some runners.
Intended users
GitLab environments where multiple runners are executed in SMP machines.
- Parker (Product Manager)
- Delaney (Development Team Lead)
- Sasha (Software Developer)
- Presley (Product Designer)
- Devon (DevOps Engineer)
Further details
In our current GitLab environment we have plenty of registered runners with most of the time with only one job, a better assignment of jobs to concurrent runners will take advantage of usage of all the available resources.
Proposal
GitLab should keep a list of registered runners with their current concurrent value and assign new jobs to runners to fill up their concurrent value. Usage of available CPU and RAM resources could be considered when assigning jobs to runners so the jobs can't fail because of not enough resources.
Permissions and Security
As far as I know, none.
Documentation
Testing
Make sure that runners are filled with jobs up to the concurrent value. And jobs are not failing because of resources starvation.
What does success look like, and how can we measure that?
GitLab runners with concurrent value greater than one can have a better utilisation of RAM/CPU resources. No idle computing power is wasted.
What is the type of buyer?
Users with runners in SMP computers.