Garbage Collection (GC) on SSD(ガベージコレクション)
SSD コントローラが削除済ページをリサイクルする内部処理。Block 内有効ページを別ブロックへコピー後、元ブロックを Erase、Wear Leveling / WAF と密接連動。
概要
Garbage Collection (GC・ガベージコレクション) はSSDコントローラがNAND Flash の削除済ページをリサイクルする内部処理。NAND は Page (4-16KB) 単位で書込・Block (1-4MB) 単位で消去という非対称性のため、削除されたファイルの即時消去が不可能。GC はBlock 内の有効ページのみを別ブロックへコピー → 元ブロックをErase してリセット → 「再書込可能」状態に戻す、SSD 寿命と性能を支える根本機構。
GC の動作フロー
[ファイル削除 + TRIM]
↓
[SSD: 該当ページに「Deallocated」フラグ]
↓
[Block A (10ページ・5有効 + 5削除済)]
↓ アイドル時 / 空き不足時にGC 起動
[コピー: 5有効ページ → Block B の空き]
↓
[Erase: Block A 全体]
↓
[Block A: 完全空き・再使用可]
GC のタイプ
Background GC (背景GC・Idle GC)
- SSD アイドル時に動作
- ユーザの書込要求がない時間帯
- 性能影響なし
- Aggressive 設定でより早期実行
Foreground GC (フォアグラウンドGC・Active GC)
- 書込要求時に空きブロック不足→ 即座実行
- ユーザリクエストを一時待たせる
- 性能急落の原因 (Latency Spike)
- 「Steady State」(過酷ベンチマーク) で顕著
Aggressive GC
- SSD 専用ツール (Samsung Magician 等) で強制起動
- アイドル時にAll Block 再配置
- WAF / 寿命に少し悪影響だが、その後の性能維持
GC と WAF の関係
WAF = (ユーザ書込 + GC コピー量) / ユーザ書込
例:
ユーザ書込: 10GB
GC コピー (有効ページ Move): 20GB
内部書込合計: 30GB
WAF = 30 / 10 = 3.0
GC オーバーヘッドが大きいほどWAF 増加・寿命短縮。
GC 効率化要因
| 要因 | 効果 |
|---|---|
| TRIM | GC 対象ページの明確化 |
| Over Provisioning | GC 余裕ブロック確保 |
| 順次書込 | Block 単位削除可能・GC 不要 |
| Hot/Cold Data 分離 | 同Block 内ライフタイム均一化 |
| ZNS (Zoned Namespaces) | Zone 単位GC・効率最大化 |
| Multi-stream Write | 関連データ同一Block 化 |
SLC Cache とGC
TLC / QLC SSDはコントローラ内でSLC Cache を持つ:
- ユーザ書込 → SLC Cache (高速・短寿命)
- アイドル時 → SLC からTLC / QLC へ「Folding」
- SLC ブロックを Erase → 再利用
この「Folding」もGC 動作の一部、WAF 増加 (TLC 部分でも書込) するがピーク性能を確保。
Steady State テスト
エンタープライズSSDレビューで「Steady State」(過酷状態) を測定:
- 100% Random Write 64KB
- SSD満タン (OP 領域も使い切る)
- 4-8時間連続書込
- GC が常時動作するピーク負荷状態
- 公称速度の20-50% 程度に低下が典型
実用ではこの状態は稀、コンシューマSSD は短期ピーク重視で十分。
GC 異常の症状
- 書込速度が突然1/10 に
- Latency 50ms+ のSpike 頻発
- SMART のGC ErrorCount 増加
- SSD アイドル中に異音 (温度上昇)
→ TRIM 確認・空き容量増・SSD 専用ツールでGC 状態確認・最悪Secure Erase
関連用語との違い
- vs Wear Leveling: GC が前提・WL は均等化
- vs TRIM: TRIM がGC を効率化するヒント
- vs Refresh: Read Disturb / Retention 対策の書直し
FAQ
Q1: 直接制御可? A: 一般ユーザは不可。Samsung Magician「Aggressive GC」等のオプション程度。
Q2: GC で性能落ちる対策? A: SSD 容量80%以下使用・TRIM 有効化・Over Provisioning 増加・大型連続書込採用。
Q3: ZFS / Btrfs のGC? A: ファイルシステム層のGC は別概念 (削除済領域回収)。SSD GC と協調して動作・両者の効率化が必要。