一、前言

自己的Gitlab是在自己的淘汰笔记本上搭建起来的,配置如下:

CPU: Intel Core i7 6700HQ
Memory: 8G, 7.7G可用
OS: OpenSUSE Leap 15.2
Gitlab: 14.0.5-ce

本来拿来单跑Gitlab是绝对没问题的,但是在Gilab入驻之前这台机子还住着另外一个内存大户.那就是Ceph集群的OSD节点(QTQ).在这种情况下,这两内存黑洞有点不够填的.
优化之前的内存占用如下(稳定运行中,非启动时):

              total        used        free      shared  buff/cache   available
Mem:           7901        5863         488         170        1549        2764
Swap:          4096         156        3939

只剩下2G内存的话再做什么都有点捉襟见肘了.降低内存占用势在必行了.况且自己搭的这个gitlab只是放在家里给自己一个人用的,不需要啥并发性能什么的,可以使劲压缩.

二、内存迫害之路

1、关闭无用组件/服务

# 关闭性能监视
monitoring_role['enable'] = false
prometheus['enable'] = false
alertmanager['enable'] = false
grafana['enable'] = false
node_exporter['enable'] = false
redis_exporter['enable'] = false
postgres_exporter['enable'] = false
gitlab_exporter['enable'] = false
sidekiq['metrics_enabled'] = false
gitlab_rails['usage_ping_enabled'] = false
 
# 关闭容器.私有云相关服务
gitlab_rails['registry_enabled'] = false
registry['enable'] = false
gitlab_rails['terraform_state_enabled'] = false
gitlab_kas['enable'] = false
 
# 依赖代理
gitlab_rails['dependency_proxy_enabled'] = false
 
# 关闭电子邮件相关
gitlab_rails['smtp_enable'] = false
gitlab_rails['gitlab_email_enabled'] = false
gitlab_rails['incoming_email_enabled'] = false

2、调整Web服务

puma['worker_processes'] = 0
puma['min_threads'] = 1
puma['max_threads'] = 2
# 13.10版本开始默认服务由unicorn转换到了puma,所以设置puma的并发进程数
sidekiq['max_concurrency'] = 5
 
# 关闭自带nginx,交由统一的nginx处理请求
external_url 'https://code.lintian.co'
gitlab_rails['trusted_proxies'] = ['127.0.0.1']
gitlab_workhorse['listen_network'] = "tcp"
gitlab_workhorse['listen_addr'] = ":80"
nginx['enable'] = false

3、调整数据库(postgresql)

postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4

4、还可以的操作

本来还想着把一些服务给分离出去,比如redis.想着占用本来就不多就算了

三、验证成果

tianliang@node1:~> free -m
              total        used        free      shared  buff/cache   available
Mem:           7901        4444        1826         166        1629        4094
Swap:          4096         156        3939