uVersion
Русский
Скачать →

Wiki

Хранилище и GC

Вид Storage вкладки Files: панель хранилища по репозиториям (размер, дедупликация, рост) и сборка мусора, очистка старых ревизий, осиротевших chunks, phantom files.

Введение

Вид Storage показывает использование диска репозиторием (проектом, версионируемым на сервере) и предоставляет инструмент сборки мусора (GC) для освобождения места путём очистки старых ревизий и данных, ставших бесполезными.

Где её найти Выберите репозиторий в селекторе строки PROJECT, откройте вкладку Files в той же строке, затем переключитесь на вид Storage двумя кнопками Browse / Storage вверху вкладки. Вид Browse служит для просмотра файлов репозитория; всё, что описывает эта страница, находится в виде Storage.
Вкладка Files с двумя кнопками Browse и Storage вверху; Storage — активная кнопка.

Доступ и роли

Вкладка Files и её вид Storage доступны суперадмину и project_admin для репозиториев, которыми он управляет, включая запуск GC. Глобальная статистика сервера и лицензия, напротив, доступны только суперадмину (в другом месте панели).

Метрики

Вид Storage открывается тремя карточками: Total Size, Files / Revisions и Dedup Ratio. Затем идут гистограмма Growth (Last 30 Days) и таблица Largest Files. Кнопка обновления в левом верхнем углу пересчитывает всё.

Вид Storage: вверху три карточки Total Size, Files / Revisions и Dedup Ratio, ниже гистограмма Growth (Last 30 Days), затем таблица Largest Files со столбцами Path, Size и Revisions.

Что означает каждое число:

  • 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», метрики вверху перезагружаются, а запуск записывается в журнал аудита.

Зелёный баннер GC complete, показанный под кнопками после Run GC: число удалённых ревизий, очищенных осиротевших chunks и убранных phantom-записей.

Что удаляет GC

  1. Старые ревизии: те, что старше Retention (days) И выходят за пределы Min revisions to keep самых свежих на файл. Затем их chunks, если на них больше не ссылается ни одна другая ревизия.
  2. Осиротевшие chunks: блоки данных, которые после очистки больше не использует ни одна ревизия.
  3. Phantom files: строки файлов, которые никогда по-настоящему не коммитились (некорректный путь или запись, оставшаяся в подвешенном состоянии), за пределами фиксированного окна в 7 дней (не настраивается).

Маркеры удаления (tombstones) удалённых или obliterate-нутых файлов сохраняются: они служат для распространения удаления на клиенты при sync, и потому не должны исчезать.

Частые ловушки

Preview сообщает очень мало

Это нормально, если репозиторий новый или его история умещается в окно хранения. GC затрагивает только ревизии, которые одновременно достаточно старые и выходят за пределы последних N на файл.

Preview и Run показывают разные счётчики

Preview не может предсказать точное число удаляемых chunks и связей ревизия-chunk: он сообщает лишь о ревизиях, просканированных файлах и фантомных записях. Осиротевшие chunks появляются только при Run.

Снизить хранение, чтобы освободить место

Возможно, но вы теряете историю. В проекте, где нужно уметь откатываться далеко назад, сохраняйте комфортное хранение и работайте лучше с крупными файлами (см. список самых крупных файлов и .uversionignore, чтобы не отслеживать перегенерируемые артефакты).