温馨提示×

gitlab debian如何优化

小樊
35
2026-09-05 14:05:11
栏目: 智能运维

在 Debian 上优化 GitLab(通常是 Omnibus 安装)主要关注:资源占用、性能、存储、备份和安全。下面按「场景 + 实操」给你一套可落地的优化方案。


一、基础资源与系统优化

1. 内存优化(最重要)

GitLab 默认吃内存很猛,小内存机器必须先砍组件

编辑:

sudo vim /etc/gitlab/gitlab.rb

关闭不需要的服务

# 不使用 GitLab Pages
gitlab_pages['enable'] = false

# 不使用 Mattermost
mattermost['enable'] = false

# 不使用 Container Registry(如不用)
registry['enable'] = false

# 不使用 Kerberos
gitlab_rails['kerberos_enabled'] = false

限制 Unicorn / Puma 进程

GitLab 13+ 默认用 Puma:

puma['worker_processes'] = 2
puma['worker_timeout'] = 60

(2–4G 内存建议 2 个 worker)

限制 Sidekiq

sidekiq['concurrency'] = 10

限制 PostgreSQL

postgresql['shared_buffers'] = "256MB"
postgresql['max_connections'] = 100

然后:

sudo gitlab-ctl reconfigure

二、性能优化

2. 启用缓存 & Gzip

gitlab_rails['gzip_enabled'] = true
nginx['enable'] = true

3. 使用外部 Redis(可选)

如果机器资源紧张:

redis['enable'] = false
gitlab_rails['redis_host'] = "127.0.0.1"
gitlab_rails['redis_port'] = 6379

4. 使用外部 PostgreSQL(生产推荐)

postgresql['enable'] = false
gitlab_rails['db_host'] = "db.example.com"
gitlab_rails['db_user'] = "gitlab"

三、存储优化(Debian 磁盘常爆)

5. 修改仓库 & 备份目录

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

gitlab_rails['backup_path'] = "/data/gitlab/backups"

6. 定期清理

# 清理旧备份
find /data/gitlab/backups -mtime +7 -delete

# 清理 Docker / 构建缓存(如启用)
gitlab-ctl registry-gc

四、备份与恢复优化

7. 自动备份

0 2 * * * /opt/gitlab/bin/gitlab-rake gitlab:backup:create

8. 增量备份(企业版)

CE 版只能全量。


五、安全与网络优化

9. 只开必要端口

sudo ufw allow 22
sudo ufw allow 80
sudo ufw allow 443

10. 使用 HTTPS

external_url 'https://gitlab.example.com'
nginx['redirect_http_to_https'] = true

六、Debian 系统级优化

11. 调整文件描述符

echo "* soft nofile 65535" >> /etc/security/limits.conf
echo "* hard nofile 65535" >> /etc/security/limits.conf

12. 使用 SSD / ext4 + noatime

/dev/sdb1 /data ext4 defaults,noatime 0 2

七、低配机器推荐配置(2C4G)

puma['worker_processes'] = 2
sidekiq['concurrency'] = 8
postgresql['shared_buffers'] = "256MB"
gitlab_pages['enable'] = false
registry['enable'] = false
mattermost['enable'] = false

八、常用排查命令

gitlab-ctl status
gitlab-ctl top
gitlab-rake gitlab:env:info

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

  • Debian 版本(11 / 12)
  • GitLab 版本(CE / EE)
  • 机器配置(CPU / 内存 / 磁盘)
  • 使用场景(个人 / 团队 / CI 重度)

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

0