Wiki
ストレージと GC
リポジトリごとのストレージダッシュボード(サイズ、重複排除、増加)とガベージコレクション:古いリビジョン、孤立した chunks、phantom files の削除。
はじめに
ストレージタブはリポジトリのディスク使用量を表示し、古いリビジョンや不要になった データを削除して容量を取り戻すためのガベージコレクション(GC)ツールを提供します。
アクセスとロール
スーパー管理者と、管理対象のリポジトリにおける project_admin が利用でき、 GC の実行も含みます。一方、サーバー全体の統計とライセンスはスーパー管理者に限定されています (パネルの別の場所)。
メトリクス
- 合計サイズと圧縮後サイズ。
- 重複排除率(%):chunks の共有と圧縮によって節約された容量の割合。
- ファイル / リビジョン / chunks。
- 増加(直近 30 日間):日別リビジョン数のヒストグラム。
- 最大のファイル:サイズ上位 20 件と、それぞれのリビジョン数。
これらの数値は、膨らんでいくリポジトリを見つけるのに役立ちます:頻繁に再コミットされる大きなバイナリファイルや、 直近 30 日間の異常な増加などです。
ガベージコレクション
GC は 2 つのパラメータに従って古い履歴を削除します:
| パラメータ | デフォルト | 役割 |
|---|---|---|
| Retention (days) | 90 | これを下回る経過日数のリビジョンは常に保持されます。 |
| Min revisions to keep | 5 | 経過日数にかかわらず、ファイルごとに保持される最近のリビジョン数。 |
2 つのボタン:
- Preview:何も削除せずにシミュレートします。バナー:「Y 個のファイルにわたって X 個の リビジョンが削除され、Z 個の phantom(幽霊)エントリが除去されます」。必ず先にプレビューしてください。
- Run GC:実際に実行します。バナー:「X 個のリビジョンを削除、Y 個の孤立した chunks を クリーンアップ、Z 個の phantom エントリを除去」。実行は監査ログに記録されます。
GC が削除する対象
- 古いリビジョン:Retention (days) より古く、かつ ファイルごとに Min revisions to keep の最新分を超えたもの。続いてそれらの chunks が、他のどの リビジョンからも参照されていなければ削除されます。
- 孤立した chunks:削除後にどのリビジョンからも使われなくなったデータブロック。
- Phantom files:実際にはコミットされなかったファイル行(無効なパス、または保留のまま 残ったエントリ)で、固定の 7 日ウィンドウ(設定不可)を超えたもの。
削除または obliterate されたファイルの削除マーカー(tombstones)は保護されます:これらは sync の際にクライアントへ削除を伝播させるために使われるため、消えてはいけません。
よくある落とし穴
Preview がほとんど何も報告しない
リポジトリが新しい場合や、履歴が保持ウィンドウ内に収まっている場合は正常です。GC は、十分に古く かつファイルごとに最新 N 件を超えたリビジョンのみを対象にします。
Preview と Run でカウンタが一致しない
Preview は削除される chunks とリビジョン・chunk リンクの正確な数を予測できません:報告できるのは リビジョン、スキャンされたファイル、phantom エントリのみです。孤立した chunks は Run のときにのみ現れます。
容量を取り戻すために保持期間を下げる
可能ですが、履歴を失います。かなり過去まで遡れる必要があるプロジェクトでは、余裕のある保持期間を 維持し、代わりに大きなファイルで調整してください(最大のファイルの一覧、および再生成可能な成果物の トラッキングを避けるための .uversionignore を参照)。