访问 http://xxx.com/admin/system_info(自己解析的域名)可以查看到 gitlab 当前的系统信息。

之前大概在 6.x ~ 7.x 左右,修改配置后的系统信息:

20220113165559.png
20220113165559.png

服务器为 2 核 8 g,可以看到还是有一定的效果的。

主要参考了 【Git学习】解决GitLab内存消耗大的问题Reducing the amount of memory used by gitlab

修改 /etc/gitlab/gitlab.rb 文件

我的修改项(跟那个 16 核 64 g 的设备没发比):

...
# 使用 unicorn
unicorn['enable'] = true
unicorn['worker_timeout'] = 60
unicorn['worker_processes'] = 2
# 限制子进程内存使用,这边表示 [200M ~ 300M]
unicorn['worker_memory_limit_min'] = "200 * 1 << 20"
unicorn['worker_memory_limit_max'] = "300 * 1 << 20"
# unicorn 与 puma 二选一,关闭 puma
puma['enable'] = false
...
# sidekiq 最大并发,默认 50,这项感觉修改并没有变化
sidekiq['max_concurrency'] = 4
...
# postgresql 共享 buffer、最大进程数,默认分别为 256MB 和 8
postgresql['shared_buffers'] = "128MB"
postgresql['max_worker_processes'] = 4
...
# 关闭普罗米修斯监控
prometheus_monitoring['enable'] = false
...

尽管对这么多项都做了降低或减少,但最有效的项是 unicorn['worker_memory_limit_x'],减少这两项效果明显。

修改完 gitlab 配置后需要重新配置并重启:

gitlab-ctl reconfigure
gitlab-ctl restart

如果存在 unicorn 无法启动的情况,可以先 stop 再 start 启动。