So ermitteln Sie die Ressourcenreserven von Home Assistant unter einer reproduzierbaren Arbeitslast

Eva Wong ist die Technische Redakteurin und und leidenschaftliche Tüftlerin bei ZimaSpace. Eine lebenslange Geek mit einer Leidenschaft für Homelabs und Open-Source-Software, sie spezialisiert sich darauf, komplexe technische Konzepte in zugängliche, praktische Anleitungenzu übersetzen. Eva ist der Meinung, dass Self-Hosting Spaß machen und nicht einschüchternd sein sollte. Durch ihre Tutorials befähigt sie die Community, Hardware-Setups zu entmystifizieren, vom Bau ihres ersten NAS bis hin zur Beherrschung von Docker-Containern.

Ein Leistungsbenchmark für Home Assistant ist nur dann nützlich, wenn er dieselbe Arbeitslast reproduziert und festlegt, was „schnell genug“ bedeutet, bevor Ressourcendiagramme betrachtet werden. Andernfalls werden Angaben zu CPU, Arbeitsspeicher, Speicher und Netzwerk zu Beobachtungen ohne Aussage über die Kapazität.

Das unterscheidet sich von der Fehlersuche bei einer einzelnen langsamen Installation. Ein Benchmark erstellt bewusst eine wiederholbare Ausgangsbasis, erhöht eine Dimension der Arbeitslast und ermittelt, wie viel Ressourcenreserve verbleibt, bevor eine ausgewählte Automatisierung, Verlaufsabfrage oder Dashboard-Antwort ihren akzeptablen Latenzbereich verlässt.

Eine Arbeitslast und einen Akzeptanzgrenzwert definieren

Wählen Sie eine Arbeitslast, die eine tatsächliche Spitzenbelastung im Haushalt abbildet: zum Beispiel eine lokale Bewegungsautomatisierung, drei aktive Dashboards, normale Recorder-Schreibvorgänge, einen festgelegten Hintergrundzeitraum ohne Backups und eine feste Gruppe von Integrationen. Notieren Sie die Home-Assistant-Version, die Host-Hardware, den Speicher, die Datenbank, den Client, den Netzwerkpfad und die Testdauer.

Die Ansicht „Systeminformationen“ von Home Assistant zeigt Installations-, Netzwerk-, Integrations- und Ressourcendetails, die zusammen mit einem Leistungsergebnis aufgezeichnet werden sollten. Ohne Angaben zur Umgebung lässt sich die Antwortzeit einer Person nicht sinnvoll mit der eines anderen Computers vergleichen.

Legen Sie anschließend den Akzeptanzgrenzwert fest. Eine Lichtautomatisierung muss möglicherweise innerhalb einer Sekunde physisch reagieren, während eine Verlaufsabfrage über fünf Jahre mit mehreren Sekunden akzeptabel sein kann. Fassen Sie diese nicht zu einer allgemeinen Bewertung der „Home-Assistant-Geschwindigkeit“ zusammen.

Für jede gemeinsam genutzte Ressource Auslastung, Sättigung und Fehler verwenden

Die durchschnittliche Auslastung allein ist ein schlechter Abbruchindikator. Ein Datenträger kann stark beschäftigt und dennoch gesund sein, oder eine CPU kann eine moderate Durchschnittsauslastung anzeigen, während kurze Spitzen eine Warteschlange erzeugen, die Nutzer als Latenz wahrnehmen.

Die USE-Methode bewertet Auslastung, Sättigung und Fehler für jede physische oder begrenzte Ressource. Wenden Sie dieses Schema auf CPU, Arbeitsspeicherkapazität, Speicher-E/A und Netzwerkschnittstellen an, anstatt einfach das Diagramm mit der höchsten Auslastung auszuwählen.

Beziehen Sie bei containerisiertem Home Assistant auch Cgroup-Limits als Ressourcen ein. Ein Host mit 60 % freier CPU kann einen Container dennoch drosseln, sobald dieser sein zugewiesenes Kontingent erreicht.

Pressure-Metriken zeigen den durch Ressourcenknappheit verlorenen Zeitanteil

Linux Pressure Stall Information bietet eine latenzorientierte Perspektive. Statt nur zu fragen, wie viel CPU, Arbeitsspeicher oder E/A verwendet wird, misst PSI den Anteil der Zeit, in der Aufgaben aufgrund einer umkämpften Ressource blockiert sind.

Die Linux-Kerndokumentation erklärt, dass sich CPU-, Speicher- und E/A-Druck als durch Konkurrenz tatsächlich verlorene Zeit messen lassen, einschließlich kurzer Spitzen, die die Latenz beeinträchtigen, bevor die durchschnittliche Auslastung extrem wirkt.

Das macht PSI auf einem gemeinsam genutzten Heimserver nützlich. Verschlechtert sich die Latenz von Home Assistant, wenn der E/A-Druck während eines Schreibstoßes eines anderen Containers steigt, ist das ein stärkerer Hinweis auf eine Konkurrenzsituation beim gemeinsam genutzten Speicher als die Aussage „Die SSD war zu 70 % ausgelastet“.

Pro Durchlauf nur eine Dimension der Arbeitslast erhöhen

Fügen Sie nicht gleichzeitig Dashboard-Nutzer, Automatisierungstrigger, Kamerastreams, Aufbewahrungsdauer und Backup-Datenverkehr hinzu. Erhöhen Sie jeweils nur eine Variable, während alle anderen Bedingungen unverändert bleiben.

Sinnvolle Stufentests umfassen mehr Automatisierungsereignisse pro Minute, mehr parallele Dashboards, größere Verlaufsbereiche, mehr Entitätsaktualisierungen oder eine festgelegte Belastung durch einen benachbarten Dienst. Warten Sie nach jeder Stufe lange genug, bis das System ein stabiles Verhalten erreicht, statt nur die ersten zehn Sekunden eines warmen Caches oder eines Startvorgangs zu erfassen.

Die ZimaSpace-Analyse zu Warteschlangenkonkurrenz und Tail-Latenz bei gemeinsam genutztem Speicher zeigt, warum die Arbeitslast dem Ressourcenpfad zugeordnet werden muss: Speicher ist nur dann relevant, wenn die getestete Aktion direkt davon abhängt oder dieselbe E/A-Warteschlange nutzt.

Eine Ressource ändern und verlangen, dass sich das Ergebnis verändert

Ein Benchmark wird diagnostisch, wenn eine kontrollierte Ressourcenänderung die Latenzkurve verschiebt. Beschränken Sie einen stark belastenden Nachbardienst bei der Home-Assistant-CPU, pausieren Sie einen schreibintensiven Auftrag, erhöhen Sie das getestete Cgroup-Speicherlimit, verwenden Sie eine direkte LAN-Route oder verschieben Sie App-Daten auf einen Speicher mit geringerer Latenz.

Verbessert sich der ursprüngliche Latenzgrenzwert bei derselben Arbeitslaststufe, war die Ressource plausibel eine Einschränkung der Reserve. Ändert sich nichts, machen Sie das Experiment rückgängig und testen Sie den nächsten Kandidaten, statt die Änderung in eine dauerhafte Konfiguration zu übernehmen.

Das Ergebnis als Kapazitätsbereich veröffentlichen

Dimension der Arbeitslast Messen mit Abbrechen, wenn
Automatisierungs-/Ereignisrate Tail-Latenz vom Trigger bis zur Aktion Latenzen oder Warteschlangen dauerhaft wachsen
Dashboard-Clients Serverantwort + Client-Rendering Wiederholte Interaktionsverzögerungen das Ziel überschreiten
Recorder-/Verlaufsbelastung Abfragelatenz + Speicherdruck Der E/A-Druck oder die Tail-Latenz der Abfrage stark ansteigt
Last auf dem gemeinsam genutzten Host PSI / Cgroup / Auslastung sich die Latenz von Home Assistant mit der Konkurrenzsituation verändert
Netzwerkpfad RTT, Paketverlust, DNS, Antwortzeit der entfernte Pfad das definierte Ziel verfehlt

Das endgültige Ergebnis sollte etwa lauten: „Diese Hardware, Datenbank, Client-Kombination und Hintergrundlast halten den gewählten Steuerungspfad bis einschließlich Stufe N innerhalb des Zielbereichs.“ Diese Aussage ist reproduzierbar. „Home Assistant verwendet nur 20 % CPU“ ist es nicht.

Tech- & KI-Zentrum

Mehr zum Lesen

Get More Builds Like This

Stay in the Loop

Get updates from Zima - new products, exclusive deals, and real builds from the community.

Stay in the Loop preferences

We respect your inbox. Unsubscribe anytime.