看我的服务器上的htop输出,我看到Gitlab产生的25个sidekiq进程。 我私下使用Gitlab,所以永远不会有任何负载,所以我怀疑所有这些进程是必需的,但我不知道如何configuration它们的数量。
在资源受限的服务器上,我真的有什么要麻烦的吗?
当然,在这里检查这个线程: https : //github.com/gitlabhq/gitlabhq/issues/2780
只需编辑sidekiq config.yml,注意并发选项: https : //github.com/mperham/sidekiq/blob/master/examples/config.yml
我编辑了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 。 改变你想要的。
在Debian安装的9.3.0版本中,我configuration了/etc/gitlab/gitlab.rb ,其中包含了sidekiq的configuration行。
更改
# sidekiq['concurrency'] = 25
无论你认为合适的数字
sidekiq['concurrency'] = 5
(原因是我改变了我的自我是因为默认的25个进程吃了大量的ram导致交换被使用,反过来使得gitlab真的很慢。在这个改变之后,性能提高了很多)
在这个Q&A线程和其他线上的问题提出的解决scheme的大部分似乎是过时的,但问题仍然是最新的,所以这里是我使用社区包的Archlinux Gitlab 9.5.3的解决scheme:
我无法通过在/ etc中添加sidekick.yml , sidekick_queues.yml或其他任何东西来获得此工作,并直接使用黑客安装的软件包源代码。
编辑系统文件/usr/share/webapps/gitlab/config/sidekiq_queues.yml并在打开之后添加这行--- YAML标记:
:concurrency: 5
由此产生的YAML看起来像这样:

然后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选项。