一、硬件与基础存储配置优化
/var/opt/gitlab/git-data)迁移至SSD,显著提升仓库读写性能,减少IO瓶颈。unicorn、sidekiq等服务有足够内存运行,避免因内存不足导致频繁使用Swap分区(若需启用Swap,可通过dd创建交换文件、mkswap格式化、swapon启用,并添加至/etc/fstab实现开机自启)。二、Git仓库自身存储优化
git-filter-repo工具彻底移除Git历史中的大文件(如旧版本的二进制文件、设计稿等),避免这些文件持续占用仓库空间。操作步骤:安装工具后运行git filter-repo --path 大文件路径 --invert-paths,强制推送更改至远程仓库(git push origin --force --all)。git gc命令压缩仓库数据、清理无用对象(如悬空提交、松散对象),减少仓库体积。可通过GitLab控制台或计划任务自动化执行。三、GitLab配置优化
/etc/gitlab/gitlab.rb文件,通过git_data_dir参数将Git数据存储路径更改为单独分区(如/data/gitlab),便于单独管理存储空间(修改后需运行gitlab-ctl reconfigure应用更改)。gitlab.rb中配置对象存储参数(如gitlab_rails['object_store']['connection']),指定存储路径和访问密钥。unicorn['worker_processes'](建议设置为CPU核心数的1-2倍)、sidekiq['concurrency'](避免过高导致内存溢出)等参数,减少内存占用;启用Redis缓存(redis['enable'] = true),提升数据访问速度(如会话、查询缓存)。四、定期数据清理
/var/opt/gitlab/backups),运行sudo gitlab-rake gitlab:backup:cleanup命令清理超过保留期限(默认7天)的备份,释放存储空间。sudo gitlab-rake gitlab:ci:cleanup清理超过指定天数(如30天)的CI/CD作业记录;运行sudo gitlab-rake log:rotate压缩和清理旧日志文件(如Nginx、GitLab应用日志);运行sudo gitlab-rake tmp:clean清理临时文件(如上传的附件、缓存文件)。gitlab.rb中设置存储上限,防止某个项目或目录占用过多空间(如git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data", "size_limit" => 500 } }),单位为GB),避免存储资源耗尽。五、监控与维护