del*_*lki 28 git gitlab gitlab-omnibus
我真的不需要所有这些工人,sidekiq或独角兽或所有这些守护进程.这是在IDLE.我的意思是,我安装了这个来管理1个项目,有4个人,我不需要所有那些守护进程.有没有办法减少这个?
Ren*_*ink 28
我也遇到了gitlab的高内存消耗问题.所以我运行了linux工具htop.
在我的情况下,我发现postgresl服务使用了大部分内存.
我在另一个之后停止了一个gitlab服务,发现当我停止postgres时,很多内存都被释放了.
你可以尝试一下
gitlab-ctl stop postgresql
Run Code Online (Sandbox Code Playgroud)
然后再次启动服务
gitlab-ctl start postgresql
Run Code Online (Sandbox Code Playgroud)
最后我遇到了以下配置 /etc/gitlab/gitlab.rb
##! **recommend value is 1/4 of total RAM, up to 14GB.**
# postgresql['shared_buffers'] = "256MB"
Run Code Online (Sandbox Code Playgroud)
我只是通过删除注释将共享缓冲区设置为256MB #,因为256MB对我来说已经足够了.
postgresql['shared_buffers'] = "256MB"
Run Code Online (Sandbox Code Playgroud)
并执行gitlab-ctl reconfigure.gitlab-ctl重启受影响的服务,内存消耗现在非常温和.

希望这有助于其他人.
Bro*_*ary 15
从你的形象来看,它看起来像Sidekiq,它的所有工人都使用了总计257mb的内存,这是正常的.请记住,所有Sidekiq工作者都使用相同的内存池,所以他们总共使用257mb,而不是每个257mb.正如您从自己的答案中看到的那样,减少Sidekiq工作人员的数量不会大幅降低内存使用量,但会导致后台作业需要更长时间,因为他们必须等待Sidekiq进程可用.我会将此值保留为默认值,但如果您确实要减少它,那么我不会将它降低到4以下,因为您有4个核心.
Unicorn进程还共享一个内存池,但每个worker有两个进程共享的池.在您的原始图像中,您看起来有5个工作程序,建议用于4核系统,每个工作程序使用大约250mb的内存.如果将工人数量减少到3,您不应该注意到任何性能差异.
此外,您可能希望阅读有关如何配置Unicorn的此文档.您绝对不希望工作人员数量少于2,因为它会导致在GitLab UI中编辑文件时出现问题,如此处所述,并且还根据我链接的文档中的引用禁用了基于HTTPS的克隆:
对于一个Unicorn工作者,只有git over ssh访问才有效,因为通过HTTP访问的git需要两个正在运行的worker(一个worker接收用户请求,一个worker接受授权检查).
最后,GitLab的最新版本似乎为postgresql数据库缓存分配了更多内存.我建议配置该物业postgresql['shared_buffers']在/etc/gitlab/gitlab.rb为你的总可用内存的1/4.有关详细信息,请参阅以下RenéLink的答案.
小智 11
从GitLab 9.0开始,prometheus默认启用,我注意到在我的情况下使用了大量超过1.5GB的内存,这可以禁用 prometheus_monitoring['enable'] = false
2我发现浏览的选项 gitlab.rb
sidekiq['concurrency'] = 1 #25 is the defaultunicorn['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)"
Run Code Online (Sandbox Code Playgroud)
这是在配置修改之后
在我看来,仍然太过分了.
快进到 2022 年,我的 GitLab v15 实例耗尽了全部内存分配。我检查并测试了本指南中的一些建议:在内存受限的环境中运行 GitLab。就我而言,减少内存使用量的更改是:
################################################################################
## GitLab Puma
################################################################################
puma['worker_timeout'] = 120
puma['worker_processes'] = 1
################################################################################
## GitLab Sidekiq
################################################################################
sidekiq['max_concurrency'] = 10
Run Code Online (Sandbox Code Playgroud)
我通过检查 Grafana 仪表板 (/-grafana) 中的服务级别指标指标来验证更改的有效性。