uVersion
简体中文
下载 →

Wiki

存储与 GC

Files 标签页的 Storage 视图:按仓库的存储仪表盘(大小、去重、增长)以及垃圾回收,清理旧版本、孤立 chunks、phantom files。

简介

Storage 视图展示一个仓库(服务器上受版本控制的项目)的磁盘占用, 并提供一个垃圾回收(GC)工具,通过清理旧版本和已无用的数据来回收空间。

在哪里找到它PROJECT 行的选择器中选择仓库,打开同一行的 Files 标签页,然后用标签页顶部的 Browse / Storage 两个按钮切换到 Storage 视图。Browse 视图用于 浏览仓库的文件;本页描述的一切都在 Storage 视图中。
顶部带有 Browse 和 Storage 两个按钮的 Files 标签页,Storage 为当前激活的按钮。

访问权限与角色

Files 标签页及其 Storage 视图可供超级管理员以及在其所管理仓库上的 project_admin 使用,包括运行 GC。而服务器全局统计与许可证则仅限超级管理员使用(位于面板的其他 位置)。

指标

Storage 视图以三张卡片开始:Total SizeFiles / RevisionsDedup Ratio。接着是 Growth (Last 30 Days) 直方图,然后是 Largest Files 表格。左上角的刷新按钮会重新计算全部内容。

Storage 视图:顶部为 Total Size、Files / Revisions 和 Dedup Ratio 三张卡片,下方为 Growth (Last 30 Days) 直方图,接着是带有 Path、Size 和 Revisions 列的 Largest Files 表格。

每个数字的含义:

  • Total Size:文件的总大小,紧接其下是磁盘上实际占用的压缩后大小。
  • Files / Revisions:文件数量,其下是版本数和 chunks 数。
  • Dedup Ratio(%):通过 chunks 共享和压缩节省的空间占比。
  • Growth (Last 30 Days):按天累计的大小。将鼠标悬停在某个柱形上可读取其日期、大小和版本数。
  • Largest Files:最大的 20 个文件及其大小和版本数。

这些数字有助于发现体积不断膨胀的仓库:一个被反复重新提交的大型二进制文件,或最近 30 天的异常增长。

垃圾回收

Garbage Collection 区块位于 Storage 视图底部。它依据两个参数清理旧历史:

参数默认值作用
Retention (days)90低于该天数的版本始终保留。
Min revisions to keep5无论年龄如何,每个文件保留的最近版本数。
GC 具有破坏性且不可逆 被清理的版本(超出保留窗口的部分)无法恢复,且 Run GC 不会要求任何确认:点击即执行。每次执行前 先运行 Preview,并核对数字是否符合预期。

1. 设置两个参数

在按钮左侧的两个字段中填入 Retention (days)Min revisions to keep。它们会以 上表的默认值 90 和 5 显示。提醒:只有当两个条件同时满足时,版本才会被清理。

2. 用 Preview 运行预览

Preview 只模拟清理,不删除任何内容。按钮下方会出现一条黄色横幅: “Preview: X revisions would be deleted across Y files, Z phantom file entries would be removed”。此时正好核对 数量级;如果数字令你意外,请调高保留期而不是直接执行。

Garbage Collection 区块:Retention (days) 和 Min revisions to keep 字段、Preview 和 Run GC 按钮,以及下方预览的黄色横幅。

3. 用 Run GC 执行

红色的 Run GC 按钮执行清理。完成时的绿色横幅显示 “GC complete: X revisions deleted, Y orphan chunks cleaned, Z phantom file entries removed”,顶部的指标会重新 加载,执行会记录在审计日志中。

一次 Run GC 之后按钮下方显示的绿色 GC complete 横幅:已删除的版本数、已清理的孤立 chunks 数和已移除的 phantom 条目数。

GC 删除的内容

  1. 旧版本:早于 Retention (days) 并且 超出每个文件 Min revisions to keep 最近版本范围的那些。随后是它们的 chunks, 前提是不再被任何其他版本引用。
  2. 孤立 chunks:清理后不再被任何版本使用的数据块。
  3. Phantom files:从未真正提交的文件记录(无效路径或悬而未决的条目), 超出固定的 7 天窗口(不可配置)的部分。

已删除或已 obliterate 文件的删除标记(tombstones)会被保留:它们用于在 sync 时 向客户端传播删除操作,因此不应消失。

常见陷阱

Preview 报告的内容很少

如果仓库较新或历史都在保留窗口之内,这是正常的。GC 只会触及既足够旧 超出每个文件最近 N 个的版本。

Preview 与 Run 显示的计数不同

Preview 无法预测将删除的 chunks 以及版本与 chunk 链接的确切数量:它只报告 版本、扫描的文件和 phantom 条目。孤立 chunks 只有在 Run 时才会出现。

降低保留期以回收空间

可行,但你会丢失历史。对于需要能够回溯很久的项目,请保留较为宽裕的保留期, 转而在大文件上做文章(参见最大文件列表,以及用于避免跟踪可重新生成产物的 .uversionignore)。