使用GitLab
作为自用或者公司内部使用的代码托管平台
,都是很不错的,但是最近群里张总反映,Gitlab服务器总会宕机
,经过排查确定,是开发人员同时操作的时候,内存跑满导致,很多时候不方便加内存,比如我个人用的阿里云Ecs内存太小,Gitlab要求的内存配置比较高,所以修改gitlab线程数来控制一下。
一、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 #设置超时时间
官方建议该值是等于CPU核心数+1
,可以提高服务器的响应速度,如果内存只有4G,或者服务器上有其它业务,就不要改了,以免内存不足。另外,这个参数最小值是2
,设为1服务器可能会卡死,但如果您的内存已消耗过高,请根据业务自行调整
,比如8G内存建议您 调整4左右,优化是持续性的工作。
重载配置
sudo gitlab-ctl reconfigure #改完执行,重载配置
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的日志
2.2 启用Swap分区
使用Swap的方法,请自行搜索,需要注意的是,修改完配置以后,需要执行下面的命令使配置生效:
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
三、 gitlab默认使用PostgreSQL,如果您开启了,可以进行如下优化,
3.1 减少数据库缓存
postgresql['shared_buffers'] = "256MB" #默认为256MB,可适当改小
3.2 减少数据库并发数
postgresql['max_worker_processes'] = 8 #默认为8,可适当改小
3.3 减少sidekiq并发数
sidekiq['concurrency'] = 25 #默认是25,可适当改小
四、最终验证结果
注意
1,所有配置都需要:sudo gitlab-ctl reconfigure 进行重载生效
2,调优这件事没有一次到位,需要根据业务逐渐调整
以上就是《GitLab性能调优-占用内存过大的问题》的几点看法,在此感谢讨论群内《张礼兵》的投稿。
更多精彩:Git相关文章
- QQ精品交流群
-
- 微信公众号
-