Centos 7 安装Gitlab CE

环境

系统环境

[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 # 重启服务