查看htop
服务器上的输出,我看到 Gitlab 生成了 25 个 sidekiq 进程。我私下使用 Gitlab,因此永远不会有任何负载,所以我怀疑所有这些进程都是必需的,但我不知道如何配置它们的数量。
在资源受限的服务器上我是否真的有必要担心这一点?
答案1
当然,请查看此处的话题:https://github.com/gitlabhq/gitlabhq/issues/2780
只需编辑 sidekiq config.yml,注意并发选项:https://github.com/mperham/sidekiq/blob/master/examples/config.yml
答案2
我编辑了 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
。将其更改为您想要的任何内容。
答案3
在 Debian 安装版本 9.3.0 中,我拥有/etc/gitlab/gitlab.rb
用于 sidekiq 的配置行。
改变
# sidekiq['concurrency'] = 25
您认为合适的任何数字:
sidekiq['concurrency'] = 5
(我改变自己的原因是默认的 25 个进程占用了大量内存,导致使用了交换空间,从而使 gitlab 变得非常慢。经过这次改变,我的性能提高了很多)
答案4
对我来说,只需转到 即可/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