温馨提示×

gitlab linux怎么优化

小樊
33
2026-09-19 14:56:51
栏目: 智能运维

在 Linux 上优化 GitLab,通常可以从 系统资源、GitLab 自身配置、数据库与缓存、存储与网络、日常维护 几个方面入手。下面给你一套比较实用的优化思路(适用于自建 GitLab,社区版 / 企业版都适用)。


一、系统层面优化(Linux)

1. 内存优化

GitLab 比较吃内存,建议:

  • 最低配置:4GB(小团队)
  • 推荐配置:8GB 以上
  • 关闭不必要的服务:
# 查看内存占用
free -h
top

2. 调整 Swap

避免 OOM:

# 有 Swap 但少用
sudo sysctl vm.swappiness=10

3. 文件描述符限制

# /etc/security/limits.conf
gitlab soft nofile 65536
gitlab hard nofile 65536

4. 磁盘 IO 优化

  • 使用 SSD
  • 分离:
    • /var/opt/gitlab/git-data (仓库)
    • /var/log/gitlab
    • 数据库目录

二、GitLab 自身配置优化

配置文件一般在:

/etc/gitlab/gitlab.rb

修改后执行:

gitlab-ctl reconfigure
gitlab-ctl restart

1. 控制 Worker 数量(重要)

根据 CPU 核心数调整:

unicorn['worker_processes'] = 4  # 社区版旧版本
puma['worker_processes'] = 4     # 新版本(13+)

经验值:

  • CPU 核心数 × 1~1.5
  • 内存不足时减少

2. 关闭不需要的功能

如果不用:

gitlab_rails['lfs_enabled'] = false
registry['enable'] = false
pages['enable'] = false
mattermost['enable'] = false

3. 限制 Sidekiq 并发

sidekiq['concurrency'] = 10

三、数据库与缓存优化

1. PostgreSQL 优化

postgresql['shared_buffers'] = "2GB"
postgresql['work_mem'] = "32MB"
postgresql['max_connections'] = 200

2. Redis 优化

redis['maxmemory'] = "1gb"
redis['maxmemory_policy'] = "allkeys-lru"

四、性能与访问优化

1. 启用 Gzip

Nginx 默认已开,可检查:

nginx['gzip'] = "on"

2. 使用反向代理 / CDN

  • 前端用 Nginx
  • 静态资源走 CDN

3. 限制 CI 并发

gitlab_rails['ci_pipeline_schedule_worker_cron'] = "*/10 * * * *"

五、日常维护(非常重要)

1. 定期清理

gitlab-rake gitlab:cleanup:orphan_job_artifacts
gitlab-rake gitlab:cleanup:project_uploads

2. 清理日志

gitlab-ctl tail | head
rm -rf /var/log/gitlab/*

3. 备份与清理旧备份

gitlab-rake gitlab:backup:create

六、快速排查性能问题

gitlab-ctl status
gitlab-ctl top
gitlab-rails console

查看慢请求:

tail -f /var/log/gitlab/gitlab-rails/production.log

七、推荐配置示例(8G 内存)

puma['worker_processes'] = 4
sidekiq['concurrency'] = 10
postgresql['shared_buffers'] = "2GB"
redis['maxmemory'] = "1gb"
registry['enable'] = false
pages['enable'] = false

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

  • GitLab 版本
  • 服务器配置(CPU / 内存 / 磁盘)
  • 主要用途(代码托管 / CI / 私有Registry)

我可以给你一份 针对性优化配置

0