最新解决gitLab社区版资源占用过高,bundle启用进程过多问题的方法(宝塔安装版可用)


最近博主和好基友@scott_sloan一起写项目,由于天各一方,不能相见,开发非常不方便,于是决定搭建一个GitLab社区版,方便共享代码,推进进度。因此我就在主服务器上通过宝塔面板安装了一个GitLab社区版。(该说不说,宝塔真的方便,尤其对于我这种懒人)

刚开始用的还好好的,我和scott sloan两人各自给最近的项目创建了仓库,写了一点文档以便共享。用着用着,我发现服务器的内存占用不对劲,居然一直在80%左右变动,居高不下。我一查,一个叫puma的程序启动了很多bundle的进程。我一想,绝对是因为GitLab。(倒不是我有多聪慧,主要那个服务器最近比较大的变动也就是装了个GitLab,肯定得是他的问题)上网一查,啥解决方案都有,可能由于版本问题,都没啥用。正好这两天有时间,研究了一下

问题起因

主服务器的CPU核心数比较高,GitLab社区版默认启动核心数+1个worker_processes导致大量的内存消耗

错误解决方案

由于我安装的GitLab版本比较新,并且宝塔面板默认使用了puma,网上很多解决方案都不适用,有人说修改unicorn['worker_processes']参数的值,但是实测无效。GitLab社区版从13.0开始使用puma作为默认Web服务器,而从14.0开始Unicorn将完全被剔除(来源 极狐GitLab官方中文文档)(都没有使用unicorn,你修改unicorn的配置肯定是没有效果的)

正确解决方案

  1. 打开/etc/gitlab/gitlab.rb文件,查找puma相关字段

  2. 修改以下字段为对应值:

    puma['enable'] = true
    
    puma['worker_timeout'] = 60
    
    puma['worker_processes'] = 4
    

    其中worker_processess可以修改为一个相对合适的值,确保减小内存占用的同时能流畅使用puma集群模式

  3. 重新配置GitLab

    sudo gitlab-ctl reconfigure
    

网页端无法访问?

正常来说,完成上面的步骤应该其实就完成了,gitlab会按照你设定的数值去启动线程,但是如果你是通过宝塔面板安装的GitLab,那你就会在执行完上面最后一条指令后,发现GitLab社区版的网页端打不开了,并且怎么重启都没用,这是为啥?

其实GitLab社区版自己包含一个nginx,默认会使用其自带的nginx。但是宝塔面板为了防止nginx冲突,在安装时把nginx改了一个名字,改为了gitlab-web

所以现在只需要打开/opt/gitlab/sv/nginx/run文件,将exec chpst -P /opt/gitlab/embedded/sbin/nginx -p /var/opt/gitlab/nginx改为exec chpst -P /opt/gitlab/embedded/sbin/gitlab-web -p /var/opt/gitlab/nginx,刷新网页,即可

完美解决~

原文链接:https://ivan.hanloth.cn/archives/596/

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值