[[Uebersicht|← Zurück zur Homepage]]
# Festplatten-Auslastung VM 109 (Home Assistant)
## Ausgangsfrage
Wer/was löst auf VM 109 (Home Assistant OS, Proxmox-Host 192.168.2.146) die Schreibzugriffe
aus, und wie stark ist die zugrundeliegende NVMe dadurch ausgelastet?
## Analyse-Methode
- **Proxmox-Host:** `qm monitor 109` → `info blockstats` liefert kumulierte Read/Write-Stats
pro virtueller Disk (`scsi0`) seit VM-Start bzw. seit der [[Proxmox Setup|NVMe-Migration]]
vom 09.07.2026.
- **Home Assistant:** Recorder-Datenbank (`/config/home-assistant_v2.db`, SQLite) direkt per
SSH abgefragt (`states` + `states_meta`), um State-Changes pro Entity/Integration in einem
festen Zeitfenster zu zählen. Jede State-Change ist potenziell ein DB-Write.
## Ursprüngliche Verteilung der Schreiblast (Stand 15.07.2026, ~14:00 Uhr, Fenster: 1h)
Gesamt: **~38.750 State-Changes/h** (≈ 10,8/Sek.)
| Anteil | Changes/h | Quelle |
|---|---|---|
| 23,2 % | 8.998 | OpenDTU + HMS1600 (Solar-Wechselrichter, 33 Entities im 10s-Takt) |
| 20,9 % | 8.111 | Marstek MTV01–03 (Batterie-Detailwerte, Integration `omnibattery`) |
| 14,1 % | 5.460 | `device_tracker.*` (Netzwerk-Presence-Erkennung) |
| 9,3 % | 3.587 | Sonstige Einzelsensoren/Automationen |
| 8,5 % | 3.295 | Garage01 (RS485-Wechselrichter) |
| 5,6 % | 2.184 | Gesamtverbrauch/Smart-Meter (Arenberger Str.) |
| 4,5 % | 1.761 | Shelly-Steckdosen (Energie-Messung) |
| 4,3 % | 1.672 | Raum-Sensoren `battery_plus_low` |
| 4,0 % | 1.555 | Marstek Venus System (aggregiert) |
| Rest | ~2.600 | Konnektivität/Ping-Sensoren, Tibber-Preissensoren, NAS-Monitoring |
**Wichtigster Befund zu OpenDTU:** Der einzelne 10s-Poll ist korrekt (360 Changes/h pro
Entity), aber das Gateway exponiert **33 Einzel-Entities** (Uptime, AC/DC-Power,
Tageseinsparung, Heap-Werte + für jeden der 4 HMS1600-Kanäle: Yield, Irradiation, Power,
Current, Voltage). Dadurch summiert sich ein einzelner Poll-Zyklus auf ~33 DB-Writes.
**Marstek MTV01–03** gehören zur Custom-Integration `omnibattery` (Modbus TCP, Port 502,
je ein Device pro Batterie: mtv01=192.168.2.150, mtv02=192.168.2.155, mtv03=192.168.2.145).
Haupttreiber sind die Zellspannungs-Detailwerte (`min/max_cell_voltage`) und `battery_power`
im Sekundentakt.
## Durchgeführte Änderung (15.07.2026, ~13:56 Uhr)
Die 24 HMS1600-Kanal-Sensoren (Spannung, Strom, Power, Irradiation, Yield je Kanal 1–4)
wurden deaktiviert. Die 9 Kern-Gateway-Entities des OpenDTU (`uptime`, `ac_power`,
`dc_power`, `yield_day`, `yield_total`, `tageseinsparung`, `heap_free`, `heap_size`,
Device-Tracker) laufen unverändert weiter.
**Effekt (per Recorder-Abfrage im sauberen Zeitfenster nach der Umstellung verifiziert):**
| | vorher | nachher | Δ |
|---|---|---|---|
| OpenDTU + HMS1600 gesamt | 8.998/h | 2.478/h | **−73 %** (−6.520/h) |
Die HMS1600-Kanal-Entities zeigten seit dem Abschalt-Zeitpunkt keinen einzigen neuen
State-Change mehr (Stichprobenkontrolle). Die Gesamtsumme über alle Entities blieb im
9-Minuten-Messfenster nahezu unverändert (+0,8 %), weil andere Gruppen (v. a. Marstek)
unregelmäßig/stoßweise senden und ein kurzes Fenster verzerrt hochrechnet — für eine
belastbare Gesamtzahl ist eine erneute 1h-Messung nötig.
## Tatsächliche Disk-Auslastung (Live-Messung, 61s-Fenster, 15.07.2026 ~14:15 Uhr)
Gemessen via zwei `blockstats`-Samples im Abstand von 61 s auf `scsi0` (Hauptdisk von
VM 109, liegt auf Storage-Pool `nvme-thin`, Samsung 980 500GB NVMe):
- **~26 IOPS** (Schreiboperationen/Sek.)
- **~0,31 MB/s** Schreibdurchsatz
- **Ø Schreiblatenz ~3,1 ms** (deckt sich mit früherer Messung vom 10.07.2026: ~3,49 ms
nach der NVMe-Migration, siehe [[Proxmox Setup]])
### Luft nach oben
| Dimension | Aktuell | Kapazität | Auslastung |
|---|---|---|---|
| IOPS | ~26 | ~480.000 (Hersteller-Peak, QD32) | << 1 % |
| Durchsatz | ~0,31 MB/s | ~3.000 MB/s sequentiell | << 1 % |
| Storage-Pool `nvme-thin` | 47,8 GB belegt | 488 GB gesamt | 9,8 % |
| `vm-109-disk-1` (Data%) | 28,2 % | 150 GB allokiert | 28,2 % |
| Proxmox-Host-Root (`/`) | 22 GB belegt | 94 GB gesamt | 24 % |
| HA-OS-Datenpartition (`/data`, `/config`) | 35,5 GB belegt | 146,9 GB gesamt | 25 % |
**Fazit:** Trotz zehntausender State-Changes/h ist die NVMe bei Weitem nicht ausgelastet –
weder bei IOPS/Durchsatz noch beim Speicherplatz. Die Recorder-Writes werden vom Batching
des HA-Recorders effizient gebündelt, sodass die tatsächliche Disk-Last minimal bleibt. Die
Latenz von ~3 ms/Write liegt im normalen NVMe-Bereich (vs. ~9,45 ms Flush-Latenz vor der
Migration auf SATA).
## Offene Punkte
- Erneute 1h-Messung der Gesamt-State-Changes nach der OpenDTU-Änderung, um den
tatsächlichen Gesamteffekt (nicht nur den OpenDTU-Block) zu bestätigen.
- Optional: gleiches Vorgehen (Detail-Entities aus Recorder/Aktivierung nehmen) auch bei den
Marstek-Zellspannungs-Sensoren (zweitgrößter Block, ~21 % bzw. ~12.400/h) prüfen, falls
die Last weiter reduziert werden soll — bislang kein akuter Handlungsbedarf, da die Disk
ohnehin kaum ausgelastet ist.
---
## Versionshistorie
| Version | Datum/Uhrzeit | Änderung |
|---|---|---|
| v1.0 | 2026-07-15 14:18 | Note erstellt |
---
[[Impressum|Impressum]] | [[Datenschutzerklärung|Datenschutz]]