Add Sidekiq queue variable count to gitlab.rb configuration
Related https://gitlab.com/gitlab-com/demo-systems/issue-tracker/-/issues/44
For use cases with a large number of simultaneous users (ex. training classes and workshops), we need to have a variable to configure the number of Sidekiq queue groups.
The manual workaround below should be converted to Ansible with a variable for sidekiq_queue_group_count
that a user can customize based on their CPU count.
Copy this to gitlab.rb
and adjust the number of asterisks to the number of CPUs available for processing. For 16-cores, we assume 10
. For 32-cores, we assume 20
.
# gitlab.rb
## START OF SECTION NOT MANAGED BY ANSIBLE
## https://gitlab.com/gitlab-com/demo-systems/issue-tracker/-/issues/44
################################################################################
## GitLab Sidekiq Cluster (EE only)
################################################################################
##! GitLab Enterprise Edition allows one to start an extra set of Sidekiq processes
##! besides the default one. These processes can be used to consume a dedicated set
##! of queues. This can be used to ensure certain queues always have dedicated
##! workers, no matter the amount of jobs that need to be processed.
sidekiq['max_concurrency'] = 10 # The maximum number of threads each Sidekiq process should run
##! Each entry in the queue_groups array denotes a group of queues that have to be processed by a
##! Sidekiq process. Multiple queues can be processed by the same process by
##! separating them with a comma within the group entry
sidekiq['queue_groups'] = [
"*",
"*",
"*",
"*",
"*",
"*",
"*",
"*",
"*",
"*",
"*",
"*"
]
## END OF SECTION NOT MANAGED BY ANSIBLE