GitLab 项目清理维护指南:Rake 任务详解

GitLab 项目清理维护指南:Rake 任务详解

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

前言

在 GitLab 的日常运维中,系统会积累各种不再需要的数据和文件,这些"垃圾"会占用宝贵的存储空间。本文将详细介绍 GitLab 提供的各种清理 Rake 任务,帮助管理员高效维护 GitLab 实例的健康状态。

清理未引用的 LFS 文件

背景知识

LFS (Large File Storage) 是 GitLab 用于管理大文件的扩展功能。当从仓库历史中移除 LFS 文件时,这些文件会变成孤立的,但仍然占用磁盘空间。

操作步骤

重要警告:不要在 GitLab 升级后 12 小时内执行此操作,以避免因后台迁移未完成而导致数据丢失。

  1. 首先执行检查(不实际删除):
sudo gitlab-rake gitlab:cleanup:orphan_lfs_file_references PROJECT_PATH="项目路径"

sudo gitlab-rake gitlab:cleanup:orphan_lfs_file_references PROJECT_ID="项目ID"
  1. 确认无误后执行实际删除:
sudo gitlab-rake gitlab:cleanup:orphan_lfs_file_references PROJECT_ID="项目ID" DRY_RUN=false
  1. 可选参数:
  • LIMIT={数字}:限制删除的引用数量
  • 输出示例会显示已移除的无效引用数量

立即清理未引用的 LFS 文件

虽然 GitLab 会每天自动清理未引用的 LFS 文件,但如需立即清理可执行:

sudo gitlab-rake gitlab:cleanup:orphan_lfs_files

清理项目上传文件

文件系统清理

此任务会清理本地文件系统中不存在于数据库记录中的项目上传文件。它会尝试修复能找到对应项目的文件,否则将文件移至"lost and found"目录。

  1. 检查模式(默认):
sudo gitlab-rake gitlab:cleanup:project_uploads
  1. 实际执行清理:
sudo gitlab-rake gitlab:cleanup:project_uploads DRY_RUN=false

注意:如果使用对象存储,应先确保所有上传文件已迁移到对象存储。

对象存储清理

对于存储在对象存储中的上传文件,执行:

sudo gitlab-rake gitlab:cleanup:remote_upload_files

实际清理:

sudo gitlab-rake gitlab:cleanup:remote_upload_files DRY_RUN=false

清理孤立的作业产物文件

注意:此命令不适用于对象存储中的产物。

  1. 检查模式:
sudo gitlab-rake gitlab:cleanup:orphan_job_artifact_files
  1. 实际清理:
sudo gitlab-rake gitlab:cleanup:orphan_job_artifact_files DRY_RUN=false
  1. 可选参数:
  • LIMIT=100:限制删除文件数量(默认100)
  • DEBUG=1:显示每个被检测为孤立文件的完整路径
  • NICENESS:设置I/O优先级(默认2,即Best-effort)

清理过期的活跃会话查找键

执行以下命令清理过期的ActiveSession查找键:

sudo gitlab-rake gitlab:cleanup:sessions:active_sessions_lookup_keys

容器注册表垃圾回收

容器注册表可能占用大量磁盘空间。要清理未使用的镜像层,请执行:

sudo gitlab-ctl registry-garbage-collect [选项]

最佳实践建议

  1. 在执行任何清理操作前,建议先进行备份
  2. 生产环境建议先在测试环境验证清理效果
  3. 对于大型实例,可使用LIMIT参数分批处理
  4. 定期执行这些清理任务可保持系统高效运行
  5. 监控磁盘空间使用情况,设置合理的清理计划

通过合理使用这些Rake任务,GitLab管理员可以有效管理系统存储空间,保持实例的最佳性能状态。

gitlabhq GitLab CE Mirror | Please open new issues in our issue tracker on GitLab.com gitlabhq 项目地址: https://gitcode.com/gh_mirrors/gi/gitlabhq

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

富艾霏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值