25 Sidekiq процессов для Gitlab

Смотря на htop на моем сервере я вижу 25 процессов sidekiq, порожденных Gitlab. Я использую Gitlab в частном порядке, поэтому никакой нагрузки не будет, поэтому я сомневаюсь, что все эти процессы требуются, но я не вижу, как настроить их количество.

Есть ли смысл для меня беспокоиться об этом на сервере с ограниченными ресурсами?

6 ответов

Я отредактировал аргументы запуска Sidekiq. В GitLab <7.0.0 он находится под scripts/background_jobs но в>7.0.0 он находится под bin/background_jobs

Изменить:

function start_sidekiq
{
  bundle exec sidekiq -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e $RAILS_ENV -P $sidekiq_pidfile $@ >> $sidekiq_logfile 2>&1
}

Для того,чтобы:

function start_sidekiq
{
  bundle exec sidekiq -c 10 -q post_receive -q mailer -q system_hook -q project_web_hook -q gitlab_shell -q common -q default -e $RAILS_ENV -P $sidekiq_pidfile $@ >> $sidekiq_logfile 2>&1
}

Обратите внимание на -c 10, Измени это на что хочешь.

Конечно, проверьте эту тему здесь: https://github.com/gitlabhq/gitlabhq/issues/2780

Просто отредактируйте sidekiq config.yml, обратите внимание на параметр параллелизма: https://github.com/mperham/sidekiq/blob/master/examples/config.yml

В Debian установка версии 9.3.0 у меня была /etc/gitlab/gitlab.rb которые имеют конфигурационные линии для sidekiq.

+ Изменить

# sidekiq['concurrency'] = 25

на любой номер, который вам подходит:

sidekiq['concurrency'] = 5

(Причина, по которой я изменил себя, заключалась в том, что 25 стандартных процессов съели много оперативной памяти, вызвав использование свопа, что, в свою очередь, сделало gitlab очень медленным. Производительность значительно улучшилась для меня после этого изменения)

Большинство предлагаемых решений этой проблемы как в этой теме вопросов и ответов, так и в других разделах, кажется, устарели, но проблема все еще актуальна, поэтому вот мое решение для Gitlab 9.5.3 для Archlinux с использованием пакетов сообщества:

Я не смог заставить это работать, добавив sidekick.yml, sidekick_queues.ymlили к чему-либо еще в /etc и прибегнуть к взлому непосредственно установленного источника пакета.

Редактировать системный файл /usr/share/webapps/gitlab/config/sidekiq_queues.yml и добавить эту строку сразу после открытия --- YAML маркер:

:concurrency: 5

Результирующий YAML выглядит примерно так:

selection_414

затем sudo systemctl restart gitlab-sidekiq и я, наконец, получил только 5 потоков, пережевывающих память вместо 25.

Для меня это сработало, чтобы просто пойти в /home/git/gitlab/config, Был sidekiq.yml.example файл. Я только что побежал:

$ cd /home/git/gitlab/config
$ cp sidekiq.yml.example sidekiq.yml

С помощью vim sidekiq.yml вы увидите, что есть :concurrency: вариант. Установите желаемое количество процессов sidekiq, сохраните файл и запустите service gitlab restart,

Отказ от ответственности: местоположение вашей установочной папки GitLab может отличаться. Для меня это было /home/git/gitlab

У меня установлена ​​версия "gitlab" из источника, и мне пришлось редактировать config/sidekiq_queues.yml и добавить :concurrency: X (где X - желаемое количество процессов.

sidekiq.yml не используется gitlab. Вы можете увидеть это, если посмотрите на запущенный процесс и его опцию -C.

Другие вопросы по тегам