GitLab在Linux环境中优化存储空间的方法
定期执行GitLab提供的Rake任务,清理不再需要的数据是释放存储的关键。常用命令包括:
sudo gitlab-rake gitlab:cleanup:orphan_lfs_files(直接删除孤立的大文件),或先检查再删除(DRY_RUN=false确认效果);sudo gitlab-rake gitlab:cleanup:project_uploads(清理本地无记录的上传文件,若使用对象存储需先迁移);sudo gitlab-rake gitlab:cleanup:orphan_job_artifact_files(删除未关联作业的产物文件);sudo gitlab-rake gitlab:backup:cleanup(删除超过保留期限的备份文件);sudo gitlab-rake gitlab:ci:cleanup(删除超过保留期限的CI/CD运行记录)。git lfs track "*.psd"标记文件类型,提交并推送至远程仓库即可生效。git-filter-repo工具彻底清除。步骤:安装工具→运行git filter-repo --path 大文件路径 --invert-paths→强制推送(git push origin --force)。修改/etc/gitlab/gitlab.rb配置文件,优化资源使用:
gitlab_rails['git_data_compression'] = true,减少仓库文件的存储占用;postgresql['shared_buffers'] = "25% of total RAM"(占总内存25%)、postgresql['work_mem'] = "4MB"(每个查询的内存分配)、postgresql['maintenance_work_mem'] = "512MB"(索引维护内存);unicorn['worker_processes'] = 3、sidekiq['concurrency'] = 10),降低内存占用;redis['enable'] = true,利用Redis缓存会话和数据,提升访问效率。将非核心数据迁移至外部存储,减轻本地磁盘压力:
gitlab.rb中的gitlab_rails['object_store']['enabled'] = true及相关参数(如bucket、access_key);/var/opt/gitlab/git-data)迁移至单独分区或NFS共享目录,修改gitlab.rb中的git_data_dir参数指向新路径。数据库是GitLab的核心组件,优化其配置可减少存储占用:
VACUUM和ANALYZE命令,清理无用数据并更新统计信息,提升查询效率;postgresql['max_connections'](建议为并发用户的2倍),避免过多连接占用内存。