Fix N+1 issues in RunnerJobsResolver
Summary
The RunnerJobsResolver
used in the query from <gitlab_url>/admin/runners/<id>
is taking too many resources, as can be seen in #384066 (comment 1198628753).
Steps to reproduce
- Enable performance bar
- Go to
<gitlab_url>/admin/runners
- Click on a runner that has jobs from multiple projects (and ideally from projects belonging to multiple groups)
- Notice that the
projects
/namespace
/acts_as_taggable
queries are executed for each job, instead of a one-shot. In the screenshot below, the left side represents the current state, and the right side represents the state once the N+1 issues have been fixed:
Relevant logs and/or screenshots
Output of checks
Results of GitLab environment info
Expand for output related to GitLab environment info
(For installations with omnibus-gitlab package run and paste the output of: `sudo gitlab-rake gitlab:env:info`) (For installations from source run and paste the output of: `sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
Results of GitLab application Check
Expand for output related to the GitLab application check
(For installations with omnibus-gitlab package run and paste the output of:
sudo gitlab-rake gitlab:check SANITIZE=true
)(For installations from source run and paste the output of:
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production SANITIZE=true
)(we will only investigate if the tests are passing)
Possible fixes
Links
Slow page load times for Admin Area > Runners (#384066 - closed)
Edited by Pedro Pombeiro