6f52d46267
Enthält Host-Doku, MQTT/HA, Git-Setup, Power-Monitoring und GPU-Idle (pve2). Co-authored-by: Cursor <cursoragent@cursor.com>
88 lines
2.3 KiB
Markdown
88 lines
2.3 KiB
Markdown
# 05 — LXC-Speicher aufräumen
|
|
|
|
## Wichtigste Erkenntnis: Thin-Pool vs. Guest-Belegung
|
|
|
|
Proxmox **Thin-LVM** (`local-lvm`, `nvme_second`) kann **viel voller** anzeigen als das Dateisystem **inside** des Containers.
|
|
|
|
| CT | Pool-Anzeige (vorher) | `df` im Guest (vorher) |
|
|
|----|------------------------|-------------------------|
|
|
| 109 media | ~99 % | ~43 % |
|
|
| 101 docker | ~97 % | ~45 % |
|
|
| 110 AIDEV | ~99 % | ~74 % |
|
|
|
|
**Ursache:** Gelöschte Dateien/Blöcke im Guest werden am Thin-Pool erst nach **`fstrim`** freigegeben.
|
|
|
|
### fstrim — größter Hebel
|
|
|
|
```bash
|
|
pct exec 101 -- fstrim -v /
|
|
pct exec 109 -- fstrim -v /
|
|
pct exec 110 -- fstrim -v /
|
|
```
|
|
|
|
Ergebnis der Session:
|
|
|
|
| Pool | Vorher | Nachher |
|
|
|------|--------|---------|
|
|
| local-lvm | ~93 % | ~43 % |
|
|
| nvme_second | ~59 % | ~40 % |
|
|
|
|
---
|
|
|
|
## Docker-Cleanup (manuell durchgeführt)
|
|
|
|
Auf CT **101**, **109**, **110**:
|
|
|
|
- Gestoppte Container entfernen (>7 Tage)
|
|
- Dangling Images löschen
|
|
- Build-Cache leeren (v. a. AIDEV: ~14 GB)
|
|
- Ungenutzte Images (>14 Tage) auf AIDEV
|
|
- Container-Logs >50 MB auf 10 MB kürzen (AIDEV: ein Log hatte **2,5 GB**)
|
|
- Journal auf ~200 MB begrenzen (`journalctl --vacuum-size=200M`)
|
|
- `apt-get clean`
|
|
|
|
### CT-spezifische Befunde
|
|
|
|
**101 docker**
|
|
- ~38 GB Frigate-Aufnahmen auf `/mnt/records` — **normal**, 30-Tage-Retention
|
|
- ~48 GB Mongo (Overleaf) — **Produktivdaten**
|
|
- ~3 GB alte Docker-Images entfernt
|
|
|
|
**109 media**
|
|
- ~4 GB alte Jellyfin/tvheadend-Images entfernt
|
|
- 18 GB Jellyfin-Config — überwiegend **Metadaten**, nicht anfassen
|
|
|
|
**110 AIDEV**
|
|
- ~69 GB `/root/code` — aktive Projekte
|
|
- ~14 GB Build-Cache + alte Images entfernt
|
|
- 17 ungenutzte Docker-Volumes (~1,2 GB) — optional manuell prüfen
|
|
|
|
---
|
|
|
|
## Was bewusst nicht gelöscht wird
|
|
|
|
| Pfad / Bereich | Grund |
|
|
|----------------|--------|
|
|
| `/mnt/records/recordings` | Frigate-Aufnahmen, HDD reicht |
|
|
| Jellyfin `metadata/` | Bibliotheks-Artwork |
|
|
| Mongo / Overleaf-Daten | Produktiv |
|
|
| `/root/code` auf AIDEV | Entwicklungsprojekte |
|
|
|
|
---
|
|
|
|
## Nützliche Befehle
|
|
|
|
```bash
|
|
# Speicher im Container
|
|
pct exec <vmid> -- df -hT /
|
|
|
|
# Docker-Übersicht
|
|
pct exec <vmid> -- docker system df -v
|
|
|
|
# Größte Verzeichnisse
|
|
pct exec <vmid> -- du -xh / --max-depth=2 2>/dev/null | sort -hr | head -20
|
|
|
|
# Große Docker-Logs finden
|
|
pct exec <vmid> -- find /var/lib/docker/containers -name '*-json.log' -size +50M -exec ls -lh {} \;
|
|
```
|