环境
系统环境
[root@PXC02 ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)
[root@PXC02 ~]# uname -a
Linux PXC02 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Gitlab
版本: 17.7 - CE
针对当前硬件系统的优化
| 配置项 | 最小配置 (极限/个人) | 推荐配置 (流畅/小团队) | 生产环境推荐 (团队/企业) |
|---|---|---|---|
| CPU | 2 核 (1核极难运行) | 4 核 | 8 核 及以上 |
| 内存 | 4 GB (必须配 Swap) | 8 GB | 16 GB 及以上 |
| 硬盘 | 40 GB SSD | 100 GB+ SSD/NVMe | 200 GB+ (视仓库大小) |
| 适用场景 | 个人学习、极低频使用 | 5-10人小团队、日常开发 | 50人+团队、高并发CI/CD |
当前系统只有1核4G,需要进行极限优化
Tips: 核心功能优化
由于只有 1 个核心,必须禁用 Puma 的多进程模式,否则几个进程争抢 1 个核心会导致系统卡死。
-
禁用 Puma 集群模式,只用 1 个进程
puma['worker_processes'] = 0 -
限制 Puma 线程数,减少上下文切换
puma['min_threads'] = 1
puma['max_threads'] = 4
Tips: 关闭非核心功能
- 关闭 Prometheus 监控(可节省约 200MB-300MB 内存)
prometheus_monitoring['enable'] = false - 关闭 GitLab 自带的 PostgreSQL 监控
postgres_exporter['enable'] = false
node_exporter['enable'] = false
Tips: Sidekiq 后台任务优化
限制后台任务并发,防止内存飙升。
-
限制 Sidekiq 最大并发数为 5-10
sidekiq['max_concurrency'] = 10 -
强制 Sidekiq 使用默认的队列组,避免启动多余的进程
sidekiq['queue_groups'] = ['*']
Tips: 内存分配器优化 (防止内存泄漏)
gitlab_rails['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
}
gitaly['env'] = {
'MALLOC_CONF' => 'dirty_decay_ms:1000,muzzy_decay_ms:1000'
}
Tips:数据库连接池优化
gitlab_rails['db_pool'] = 10 减少链接数
安装方式:
使用官方提供的 shell 脚本安装:
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh
yum install -y gitlab-ce
配置
- /etc/gitlab/gitlab.rb
主配置文件,包含外部URL、仓库目录、备份目录等 - /etc/gitlab/gitlab-secrets.json:
(执行gitlab-ctl reconfigure命令行后生成),包含各类密钥的加密信息
必需要修改的配置
配置Gitlab的访问地址,默认是80端口,要注意防火墙
[root@node102 ~]# cat /etc/gitlab/gitlab.rb |grep -v "#" |grep -Ev "^$"
external_url 'http://gitlab.example.com'
默认密码
cat /etc/gitlab/initial_root_password
常用的命令
gitlab-ctl diff-config # 比较配置差异
gitlab-ctl reconfigure # 修改配置文件后,重新生成配置json文件
gitlab-ctl status # 查看当前Gitlab的状态
gitlab-ctl restart # 重启服务