如何在 CentOS 上优化 GitLab
导读:CentOS 上优化 GitLab 的实用清单 一 硬件与存储基础 优先使用SSD/NVMe与充足内存,GitLab 为内存密集型应用;生产建议内存≥8GB(16GB+ 更佳)、≥4 核 CPU,并尽量使用SSD提升 I/O。 大仓库与高...
CentOS 上优化 GitLab 的实用清单
一 硬件与存储基础
- 优先使用SSD/NVMe与充足内存,GitLab 为内存密集型应用;生产建议内存≥8GB(16GB+ 更佳)、≥4 核 CPU,并尽量使用SSD提升 I/O。
- 大仓库与高并发场景建议启用Gitaly 集群以分担存储与计算压力,提升稳定性与吞吐。
- 大型仓库使用 Git LFS 管理二进制大文件,避免仓库膨胀与克隆缓慢。
- 规划备份窗口与保留策略,使用内置工具定期备份,确保可快速恢复。
二 操作系统与内核参数
- 文件描述符与进程限制:在 /etc/security/limits.conf 增加
* soft nofile 65535* hard nofile 65535
并在相关 PAM 会话配置中确保生效,避免“Too many open files”。
- TCP/网络栈优化(/etc/sysctl.conf):
net.core.somaxconn = 65535net.ipv4.tcp_max_syn_backlog = 65535net.ipv4.ip_local_port_range = 1024 65535net.ipv4.tcp_tw_reuse = 1net.ipv4.tcp_fin_timeout = 30vm.swappiness = 10(减少换页,优先使用物理内存)
执行sysctl -p使配置生效。
- 存储与文件系统:使用 ext4 等通用文件系统,挂载时启用 noatime 减少元数据写入;高并发/大仓库可考虑 RAID 提升吞吐与冗余。
三 GitLab 组件与 Rails 配置
- 工作进程与超时(/etc/gitlab/gitlab.rb):
unicorn['worker_processes'] = < CPU 核心数的 1–2 倍>(如 4 核设为 4)unicorn['timeout'] = 300
- 后台任务并发(Sidekiq):
sidekiq['concurrency'] = 25(按 CPU/内存与队列压力调优)sidekiq['queues'] = ["default", "gitlab"]
- 缓存策略:
gitlab_rails['cache_store'] = :memory_store, { size: 64.megabytes }(减轻数据库压力,视内存酌情增大)
- 大仓库与 LFS:启用 Git LFS 管理大文件,降低仓库体积与网络传输压力。
- 修改后执行
gitlab-ctl reconfigure使配置生效。
四 网络 安全 与运维
- 防火墙与端口:仅放行必要端口(示例)
firewall-cmd --permanent --add-service={ http,https,ssh} & & firewall-cmd --reload- 若自定义 SSH 端口(如 2222),需同步放行并配置
gitlab_rails['gitlab_shell_ssh_port'] = 2222。
- HTTPS 与证书:使用 Let’s Encrypt 获取免费证书,设置
external_url 'https://yourdomain.com'并配置证书路径。 - 认证与访问控制:优先SSH 密钥,可禁用密码登录;启用2FA、LDAP 集中认证与复杂密码策略。
- 监控与告警:集成 Prometheus + Alertmanager 监控关键指标(请求延迟、Sidekiq 积压、Puma/Unicorn 进程、磁盘/IO 等),异常及时通知。
- 备份与恢复:定期执行
gitlab-backup create(默认路径 /var/opt/gitlab/backups),恢复时按官方流程停止相关服务并指定备份时间戳。
五 快速检查清单与注意事项
- 核对项:
- 资源基线:CPU ≥4 核、内存≥8GB、SSD 存储;必要时规划 Gitaly 集群。
- 系统参数:
ulimit -n达到 65535;sysctl关键项已生效。 - GitLab 参数:
unicorn['worker_processes']、sidekiq['concurrency']、cache_store已按负载调整。 - 网络与端口:仅开放 80/443/22(或自定义);HTTPS 证书有效;必要时使用 CDN 加速静态资源。
- 安全:SSH 密钥登录、2FA、LDAP、密码复杂度策略已启用。
- 监控与备份:Prometheus/Alertmanager 已部署;备份任务与保留策略在运行。
- 注意事项:
- 所有
/etc/gitlab/gitlab.rb修改后必须执行gitlab-ctl reconfigure。 - 调参遵循“小步迭代 + 压测验证”,避免一次性大幅变更。
- 升级前做好全量备份与回滚预案,优先在测试环境验证。
- 所有
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 如何在 CentOS 上优化 GitLab
本文地址: https://pptw.com/jishu/782755.html
