我真的不需要所有这些工人,sidekiq或独角兽或所有守护进程。这是在IDLE。我的意思是,我安装了这个来管理1个项目,有4个人,我不需要所有那些守护进程。有没有办法减少这个?
答案 0 :(得分:26)
我也遇到了gitlab的高内存消耗问题。所以我运行了linux工具htop
。
就我而言,我发现postgresl服务占用了大部分内存。
我在另一个之后停止了一个gitlab服务,发现当我停止postgres 时,释放了大量内存。
你可以尝试一下
gitlab-ctl stop postgresql
并使用
重新启动服务gitlab-ctl start postgresql
最后,我在/etc/gitlab/gitlab.rb
##! **recommend value is 1/4 of total RAM, up to 14GB.**
# postgresql['shared_buffers'] = "256MB"
我只是通过删除评论#
将共享缓冲区设置为256MB,因为256MB就足够了。
postgresql['shared_buffers'] = "256MB"
并执行gitlab-ctl reconfigure
。 gitlab-ctl重启受影响的服务,内存消耗现在非常温和。
希望这有助于其他人。
答案 1 :(得分:14)
从你的形象来看,它看起来像Sidekiq,它的所有工作人员都使用了总共257mb的内存,这是正常的。请记住,所有Sidekiq工作者都使用相同的内存池,所以他们总共使用257mb,而不是每个257mb。正如您从自己的答案中看到的那样,减少Sidekiq工作人员的数量不会大幅降低内存使用量,但会导致后台作业需要更长时间,因为他们必须等待Sidekiq进程可用。我会将此值保留为默认值,但如果你真的想减少它,那么我不会将它降低到4以下,因为你有4个核心。
Unicorn进程还共享一个内存池,但每个worker有2个进程共享的池。在您的原始图像中,您看起来有5个工作程序,建议用于4核系统,每个工作程序使用大约250mb的内存。如果将工人数量减少到3,则不应发现任何性能差异。
另外,您可能希望阅读有关如何配置Unicorn的this doc。您绝对不希望工作人员数量少于2,因为它会导致在GitLab UI中编辑文件时出现问题discussed here,并且还会根据文档中的引用禁用通过HTTPS进行克隆链接:
对于一个Unicorn工作者,只有git over ssh访问才有效,因为git over HTTP访问需要两个正在运行的worker(一个worker接收用户请求,一个worker接受授权检查)。
最后,最新版本的GitLab似乎为postgresql数据库缓存分配了更多内存。我建议在postgresql['shared_buffers']
中将此属性/etc/gitlab/gitlab.rb
配置为总可用RAM的1/4。有关详细信息,请参阅下面的René Link's answer。
答案 2 :(得分:10)
自GitLab 9.0起,prometheus默认启用,我注意到在我的情况下使用了大量超过1.5GB的内存,可以使用prometheus_monitoring['enable'] = false
答案 3 :(得分:8)
我发现浏览gitlab.rb
sidekiq['concurrency'] = 1 #25 is the default
unicorn['worker_processes'] = 1 #2 is the default
这需要根据他们的警告理解:
## Only change these settings if you understand well what they mean
## see https://about.gitlab.com/2015/06/05/how-gitlab-uses-unicorn-and- unicorn-worker-killer/
## and https://github.com/kzk/unicorn-worker-killer
# unicorn['worker_memory_limit_min'] = "300*(1024**2)"
# unicorn['worker_memory_limit_max'] = "350*(1024**2)"
这是在配置修改之后
我认为还是太过分了。
答案 4 :(得分:2)
我已经修好了这个案子
使用最多记忆的是独角兽!
我的gitlab版本是“GitLab Community Edition 10.6.3”
它在我的服务器上被删除,它是cpu,INTEL Core i5 8400用于六个核心
所以gitlab为独角兽分配了7个进程,每个进程占用了6%的mem。
方法:
vim /var/opt/gitlab/gitlab-rails/etc/unicorn.rb
How to edit the unicorn.rb
编辑并保存更改。
并执行“gitlab-ctl restart unicorn”
The htop behind unicorn.rb changes
答案 5 :(得分:1)
我遇到了同样的问题:香草Ubuntu 20.04上的香草Gitlab可能会在没有任何负载的情况下崩溃之前持续一天。裸机EPYC,8c / 16t和64 GB RAM。
如BrokenBinary's answer所述,Postgresql占有其15G份额,但即使“固定”到2G也不能满足要求。
我还必须确定Puma工人的数量:
puma['worker_processes'] = 2
看来,较新的Gitlab安装将使用内存泄漏的独角兽替代品来发生内存泄漏。
更新:再次崩溃。下次尝试:
sidekiq['max_concurrency'] = 6
sidekiq['min_concurrency'] = 2
答案 6 :(得分:0)
当我按其他答案中所述更改 /etc/gitlab/gitlab.rb 时,它对我不起作用。
这就是我所做的,我编辑了以下文件:
/var/opt/gitlab/gitlab-rails/etc/unicorn.rb
(也许您计算机中文件的路径不同)
然后将worker_processes 9
更改为worker_processes 2
。