GitLab 在 Linux 上内存占用过高是常见问题,尤其是默认配置偏向“功能全集”。下面按原因 → 排查 → 优化方案给你一个实用清单,从“立刻能做的”到“根本性的调整”。
free -h
top
htop
重点看:
gitlab, postgres, redis, puma, sidekiqGitLab 官方推荐最低内存:
GitLab 默认会按 CPU 核数自动开 Puma worker。
处理 CI、Webhook、邮件。
默认按机器内存计算,小机器照样吃。
监控组件非常吃内存。
编辑配置:
sudo vim /etc/gitlab/gitlab.rb
puma['enable'] = true
puma['worker_processes'] = 2 # 默认是 CPU 核数,4 核以下建议 2
puma['min_threads'] = 1
puma['max_threads'] = 2
小服务器推荐:
worker_processes = 1worker_processes = 2sidekiq['max_concurrency'] = 10
默认是 50,非常浪费。
postgresql['shared_buffers'] = "256MB"
postgresql['work_mem'] = "8MB"
postgresql['maintenance_work_mem'] = "32MB"
prometheus_monitoring['enable'] = false
⚠️ 关闭后无法使用内置监控图表。
gitlab_rails['gitlab_ci_enabled'] = false
registry['enable'] = false
pages_external_url = nil
gitlab_pages['enable'] = false
sudo gitlab-ctl reconfigure
sudo gitlab-ctl restart
| 场景 | 内存占用 |
|---|---|
| 默认安装 | 6–10 GB |
| 优化后(8G 服务器) | 3–5 GB |
| 最小可用 | 2.5 GB |
docker run -m 6g gitlab/gitlab-ee
| 用户数 | 建议 |
|---|---|
| < 20 人 | Gitea |
| 20–100 人 | GitLab + 上面优化 |
| > 100 人 | 8–16 GB 服务器 |
你可以直接发我:
我可以给你一套“刚好不崩”的配置。