25 Gitlab的Sidekiqstream程

看我的服务器上的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.ymlsidekick_queues.yml或其他任何东西来获得此工作,并直接使用黑客安装的软件包源代码。

编辑系统文件/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选项。