1. 背景
GitLab 服务器内存消耗严重,8G服务器达到80%,服务器预警。
2. 问题
进行上网搜索资料,发现GitLab服务器的进程会自动开启Cpu和核数+1,高消耗服务器。这可能也是GitLab搭建不支持2核服务器的原因,自身消耗太高。
3. 定位
进过网上方案进行实践:
# 控制系统内存彪高配置
unicorn['worker_timeout'] = 60
unicorn['worker_processes'] = 5
unicorn['worker_memory_limit_min'] = "200 * 1 << 20"
unicorn['worker_memory_limit_max'] = "300 * 1 << 20"
sidekiq['concurrency'] = 16
postgresql['shared_buffers'] = "256MB"
postgresql['max_worker_processes'] = 8
# 进行重载配置
gitlab-ctl restart
gitlab-ctl reconfigure
发现内存的确降了下来,下降至40%左右。但是经过1星期后,服务器再次预警发现服务器还是内存彪高,高达80%,于是分两步进行,再次下降配置:
第一步:
# 控制系统内存彪高配置
unicorn['worker_timeout'] = 60
unicorn['worker_processes'] = 2
unicorn['worker_memory_limit_min'] = "100 * 1 << 20"
unicorn['worker_memory_limit_max'] = "200 * 1 << 20"
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "125MB"
postgresql['max_worker_processes'] = 2
经过top定位发现postgres_export使用内存高达近40%
第二步:
进行postgres_export关闭,经网上查证,关闭后不会对gitLab造成影响,是拓展功能;
# 关掉prometheus 。这个是系统监控收集信息的工具。
prometheus_monitoring['enable'] = false
重载
# 更改完成配置文件后需要:
gitlab-ctl restart
gitlab-ctl reconfigure
再次查看top,下降至47%左右。
4. 总结
GitLab对服务器消耗较高,需要结合自己对gitLab的要求和服务器配置进行调整配置文件,防止GitLab持续消耗内存至服务器崩溃的情况。