在 Linux 上优化 GitLab,通常可以从 系统资源、GitLab 自身配置、数据库与缓存、存储与网络、日常维护 几个方面入手。下面给你一套比较实用的优化思路(适用于自建 GitLab,社区版 / 企业版都适用)。
GitLab 比较吃内存,建议:
# 查看内存占用
free -h
top
避免 OOM:
# 有 Swap 但少用
sudo sysctl vm.swappiness=10
# /etc/security/limits.conf
gitlab soft nofile 65536
gitlab hard nofile 65536
/var/opt/gitlab/git-data (仓库)/var/log/gitlab配置文件一般在:
/etc/gitlab/gitlab.rb
修改后执行:
gitlab-ctl reconfigure
gitlab-ctl restart
根据 CPU 核心数调整:
unicorn['worker_processes'] = 4 # 社区版旧版本
puma['worker_processes'] = 4 # 新版本(13+)
经验值:
如果不用:
gitlab_rails['lfs_enabled'] = false
registry['enable'] = false
pages['enable'] = false
mattermost['enable'] = false
sidekiq['concurrency'] = 10
postgresql['shared_buffers'] = "2GB"
postgresql['work_mem'] = "32MB"
postgresql['max_connections'] = 200
redis['maxmemory'] = "1gb"
redis['maxmemory_policy'] = "allkeys-lru"
Nginx 默认已开,可检查:
nginx['gzip'] = "on"
gitlab_rails['ci_pipeline_schedule_worker_cron'] = "*/10 * * * *"
gitlab-rake gitlab:cleanup:orphan_job_artifacts
gitlab-rake gitlab:cleanup:project_uploads
gitlab-ctl tail | head
rm -rf /var/log/gitlab/*
gitlab-rake gitlab:backup:create
gitlab-ctl status
gitlab-ctl top
gitlab-rails console
查看慢请求:
tail -f /var/log/gitlab/gitlab-rails/production.log
puma['worker_processes'] = 4
sidekiq['concurrency'] = 10
postgresql['shared_buffers'] = "2GB"
redis['maxmemory'] = "1gb"
registry['enable'] = false
pages['enable'] = false
如果你愿意,可以告诉我:
我可以给你一份 针对性优化配置。