GitLab内存过多的问题-性能优化

使用GitLab作为自用或者公司内部使用的代码托管平台,都是很不错的,但是最近用户反映,Gitlab服务器总会宕机,经过排查确定,是开发人员同时操作的时候,内存跑满导致,很多时候不方便加内存,比如我个人用的阿里云Ecs内存太小,Gitlab要求的内存配置比较高,所以修改gitlab线程数来控制一下。

二、gitlab内存过高的处理方法

首先需要确定你已经知道官方明确要求的GitLab的硬件需求了,硬件需求详见GitLab Requirements,简单来讲,官方推荐最低物理配置是2核,4G,下面就总结一下减少GitLab占用内存的一些方法

2.1 减少进程数与超时时间

修改配置文件/etc/gitlab/gitlab.rb中的worker_processesworker_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

你可能感兴趣的:(k8s+docker运维)