Linux 上的 GitLab 出现卡顿,通常不是单一原因,而是资源、配置或架构问题叠加。下面从最常见 → 较少见系统说明,并给出排查方法。
GitLab 是资源大户,官方最低要求:
常见卡顿表现:
git clone 超时✅ 排查:
top
free -h
df -h
重点看:
内存使用率swap 是否频繁使用磁盘是否 100%✅ 解决:
GitLab 默认开启:
✅ 查看服务:
gitlab-ctl status
✅ 精简(示例):
# /etc/gitlab/gitlab.rb
prometheus_monitoring['enable'] = false
grafana['enable'] = false
registry['enable'] = false
pages['enable'] = false
然后:
gitlab-ctl reconfigure
默认线程数可能过高或过低。
✅ 推荐配置(8G 内存):
puma['worker_processes'] = 2
puma['min_threads'] = 4
puma['max_threads'] = 8
sidekiq['concurrency'] = 10
gitlab-ctl reconfigure
gitlab-ctl restart
GitLab:
✅ 检查:
iostat -x 1
如果 %util 接近 100%,就是磁盘问题。
✅ 解决:
repositories、uploads 分离✅ 查看:
du -sh /var/opt/gitlab/git-data/repositories
✅ 优化:
如果你用了:
常见问题:
✅ 示例(Nginx):
proxy_read_timeout 300;
proxy_connect_timeout 300;
gzip on;
GitLab 会:
✅ 检查:
getent hosts gitlab.com
✅ 可禁用:
gitlab_rails['gitlab_email_from'] = 'gitlab@yourdomain.com'
旧版 GitLab 有严重性能问题。
✅ 查看版本:
cat /opt/gitlab/embedded/service/gitlab-rails/VERSION
✅ 建议:
PostgreSQL 未做 vacuum。
✅ 手动:
gitlab-psql
VACUUM ANALYZE;
# 1. 看资源
top
free -h
# 2. 看服务
gitlab-ctl status
# 3. 看日志
gitlab-ctl tail
# 4. 看慢请求
gitlab-ctl tail nginx
你可以补充:
我可以直接给你最优配置方案。