使用GitLab
作为自用或者公司内部使用的代码托管平台
,都是很不错的,但是最近用户反映,Gitlab服务器总会宕机
,经过排查确定,是开发人员同时操作的时候,内存跑满导致,很多时候不方便加内存,比如我个人用的阿里云Ecs内存太小,Gitlab要求的内存配置比较高,所以修改gitlab线程数来控制一下。
二、gitlab内存过高的处理方法
首先需要确定你已经知道官方明确要求的GitLab的硬件需求了,硬件需求详见GitLab Requirements,简单来讲,官方推荐最低物理配置
是2核,4G,下面就总结一下减少GitLab占用内存的一些方法
2.1 减少进程数与超时时间
修改配置文件/etc/gitlab/gitlab.rb
中的worker_processes
与worker_timeout
:
unicorn['worker_processes'] = 5 #默认是被注释掉的,最小不能低于2,否者会卡死
# 我的服务器配置为4C 8G,所以调整为5.
unicorn['worker_timeout'] = 60 #设置超时时间
123
Bash
官方建议该值是等于CPU核心数+1
,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足。另外,这个参数最小值是2
,设为1服务器可能会卡死,但如果您的内存已消耗过高,请根据业务自行调整
,比如8G内存建议您 调整4左右,优化是持续性的工作。
重载配置
sudo gitlab-ctl reconfigure #改完执行,重载配置
1
Bash
gitlab常用运维命令
gitlab-ctl help #查看gitlab帮助信息
gitlab-ctl show-config #查看gitlab配置信息
gitlab-ctl status #查看gitlab状态
gitlab-ctl reconfigure #重新加载Gitlab配置
gitlab-ctl restart #重启Gitlab所有组件
gitlab-ctl stop #停止Gitlab所有组件
gitlab-ctl tail postgresql #查看postgresql的日志
1234567
Bash
2.2 启用Swap分区
使用Swap的方法,请自行搜索,需要注意的是,修改完配置以后,需要执行下面的命令使配置生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
12
Bash
三、 gitlab默认使用PostgreSQL,如果您开启了,可以进行如下优化,
3.1 减少数据库缓存
postgresql['shared_buffers'] = "256MB" #默认为256MB,可适当改小
1
Bash
3.2 减少数据库并发数
postgresql['max_worker_processes'] = 8 #默认为8,可适当改小
1
Bash
3.3 减少sidekiq并发数
sidekiq['concurrency'] = 25 #默认是25,可适当改小
1