[[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]]