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倍),避免過多連接占用內存。