Linux 上 GitLab 占用资源(CPU / 内存 / 磁盘)很高,通常是由以下几个方面造成的。我按「常见原因 → 说明 → 解决办法」给你梳理一下。
GitLab 不是单个程序,而是一整套服务:
nginxunicorn / puma(Web)sidekiq(后台任务)postgresqlredisgitaly(Git 存储)prometheus(监控)gitlab-runner(如果有 CI)✅ 默认配置偏向“生产环境”,资源消耗大
默认会开多个 worker
查看:
ps aux | grep puma
修改:
vim /etc/gitlab/gitlab.rb
puma['worker_processes'] = 2
默认会吃很多内存
postgresql['shared_buffers'] = "256MB"
postgresql['max_connections'] = 100
监控系统非常吃资源
prometheus['enable'] = false
alertmanager['enable'] = false
node_exporter['enable'] = false
查看:
sudo gitlab-rake gitlab:sidekiq:workhorse:alive
减少并发:
sidekiq['concurrency'] = 10
大仓库 / 频繁 clone
top -c | grep gitaly
GitLab 默认:
/var/opt/gitlab/var/log/gitlab清理:
gitlab-ctl cleanup
限制日志:
logging['logrotate_frequency'] = "daily"
logging['logrotate_size'] = "100M"
ls -lh /var/opt/gitlab/backups
检查:
sudo gitlab-ctl tail nginx
| 场景 | 最低配置 |
|---|---|
| 测试 | 2核 4G |
| 小团队 | 4核 8G |
| 生产 | 8核 16G+ |
puma['worker_processes'] = 2
sidekiq['concurrency'] = 10
prometheus['enable'] = false
postgresql['shared_buffers'] = "256MB"
然后:
gitlab-ctl reconfigure
gitlab-ctl restart
如果你愿意,可以贴一下:
top / free -h 输出我可以帮你精确判断是哪一部分在吃资源。