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.

Links / references

Assignee Loading
Time tracking Loading