温馨提示×

CentOS如何优化GitLab

小樊
40
2026-07-08 09:14:26
栏目: 智能运维

CentOS 上优化 GitLab,通常从 系统资源、GitLab 组件、数据库、存储、网络、安全 六个方面入手。以下是一套生产环境可用的优化方案


一、系统层面优化(CentOS)

1. 调整系统资源限制

编辑:

vi /etc/security/limits.conf

添加:

* soft nofile 65535
* hard nofile 65535

立即生效:

ulimit -n 65535

2. 关闭 Swap(推荐)

GitLab 对内存敏感,Swap 会导致性能下降:

swapoff -a

永久关闭(注释 /etc/fstab 中的 swap 行)。


3. 内核参数优化

编辑:

vi /etc/sysctl.conf

添加:

vm.swappiness = 1
net.core.somaxconn = 65535
net.ipv4.tcp_max_syn_backlog = 65535
net.ipv4.ip_local_port_range = 1024 65535

生效:

sysctl -p

二、GitLab 配置优化(核心)

1. 修改 GitLab 配置文件

vi /etc/gitlab/gitlab.rb

2. 减少不必要的组件(如果只用 Git + CI)

gitlab_pages['enable'] = false
grafana['enable'] = false
prometheus_monitoring['enable'] = false

3. 调整 Unicorn / Puma(关键)

GitLab ≥ 13.x(Puma)

puma['enable'] = true
puma['worker_processes'] = 2   # 建议 = CPU 核数
puma['min_threads'] = 4
puma['max_threads'] = 8

GitLab < 13(Unicorn)

unicorn['worker_processes'] = 2

⚠️ 不要设置过大,否则内存会爆


4. Sidekiq 并发优化

sidekiq['max_concurrency'] = 10

5. 数据库连接池

gitlab_rails['db_pool'] = 20

6. 重新加载配置

gitlab-ctl reconfigure
gitlab-ctl restart

三、数据库优化(PostgreSQL)

1. 使用 GitLab 自带 PG(推荐)

避免外部数据库带来的网络开销。

2. 调整 PostgreSQL 参数

postgresql['max_connections'] = 200
postgresql['shared_buffers'] = "512MB"
postgresql['work_mem'] = "16MB"

四、存储优化

1. 使用 SSD(强烈推荐)

GitLab 对磁盘 IO 很敏感。

2. 仓库存储路径优化

git_data_dirs({
  "default" => { "path" => "/data/gitlab/git-data" }
})

确保 /data 是 SSD 或高性能磁盘。


3. LFS / CI 产物清理

gitlab-rake gitlab:cleanup:orphan_lfs_files

五、内存优化(低配服务器必做)

1. 4GB 内存推荐配置

puma['worker_processes'] = 1
sidekiq['max_concurrency'] = 5
prometheus_monitoring['enable'] = false

2. 查看内存占用

gitlab-ctl status
free -h

六、网络与安全优化

1. 使用 Nginx 缓存(GitLab 自带)

nginx['enable'] = true
nginx['worker_processes'] = 2

2. 开启 HTTPS(减少重试)

letsencrypt['enable'] = true

七、定期维护

1. 定期清理 Redis

gitlab-rake cache:clear

2. 检查健康状态

gitlab-rake gitlab:check

八、推荐最低配置(生产)

用户规模 CPU 内存 磁盘
10–50 人 2 核 4GB SSD 40GB
50–200 人 4 核 8GB SSD 100GB
200+ 8 核 16GB+ SSD + 分离存储

九、常见性能问题排查

卡顿

top
gitlab-ctl tail

502 错误

gitlab-ctl status puma

如果你愿意,可以告诉我:

  • ✅ GitLab 版本
  • ✅ 服务器配置(CPU / 内存 / 磁盘)
  • ✅ 是否使用 CI / Docker / Runner

我可以 直接给你一份定制化的 gitlab.rb 配置

0