Optimieren Sie die Datenbankverbindungen von Home Assistant, indem Sie das Gesamtlimit auf alle Container verteilen, statt einen einzelnen Pool zu maximieren. Lassen Sie Raum für Datenbankverwaltung und Hintergrundaufgaben und überprüfen Sie Recorder während des gleichzeitigen Starts sowie während der arbeitsreichsten normalen Schreibphase.
Auf einem gemeinsam genutzten MariaDB- oder PostgreSQL-Host ist die entscheidende Zahl die Summe der möglichen Verbindungen jedes Dienstes, multipliziert mit der Anzahl seiner laufenden Instanzen, zuzüglich Wartungs- und Notfallzugriffen. Messen Sie aktive, inaktive, wartende und fehlgeschlagene Verbindungen zusammen mit Abfragelatenz und Speicherauslastung. Wenn Sie SQLite verwenden, hören Sie hier auf: Mehr Container auf dieselbe Datenbankdatei zu verschieben, ist keine Optimierung des Verbindungspools.
Datenbanktopologie und aktuellen Verbindungsbedarf bestätigen
Dokumentieren Sie Datenbank-Engine und -Version, die Home-Assistant-Recorder-URL, jeden anderen Client-Container, die Anzahl der Replikate, den konfigurierten Pool, Timeouts, Wiederholungsverhalten und Neustartrichtlinien. Stellen Sie sicher, dass jeder Dienst einen eigenen Datenbankbenutzer besitzt, damit aktive Sitzungen korrekt zugeordnet werden können.
Messen Sie das Verbindungsmaximum der Datenbank, aktuelle Sitzungen nach Benutzer und Status, Sitzungspeaks während des Starts und unter normaler Last, Wartezeiten, Abfragelatenz, CPU- und Speicherauslastung sowie Speicherlatenz. Eine hohe Verbindungsanzahl kann ein Symptom langsamer Verarbeitung statt deren Ursache sein; mehr Sitzungen auf einem ausgelasteten Datenträger erhöhen in der Regel die Konkurrenz um Ressourcen.
Verwenden Sie den ZimaSpace-Leitfaden zur Zuverlässigkeit externer Home-Assistant-Datenbanken, um Backups, Schemap Berechtigungen, Engine-Unterstützung und Upgrade-Grenzen zu überprüfen, bevor Sie die Parallelität anpassen.
Verbindungsbudget für alle Container erstellen
Reservieren Sie Verbindungen für Datenbankverwaltung, Überwachung, Migrationen, Backups und interne Engine-Aufgaben. Verteilen Sie das verbleibende Anwendungskontingent auf die Dienste entsprechend der gemessenen gleichzeitigen Arbeit, nicht anhand des installierten Arbeitsspeichers oder eines kopierten Werts für maximale Verbindungen.
Richtlinien für Verbindungspools bei Diensten mit mehreren Instanzen machen die entscheidende Rechnung deutlich: Die Datenbank muss Poolgröße multipliziert mit der Instanzanzahl unterstützen. Das Konzept gilt allgemein, dennoch benötigt jede Home-Assistant- und Datenbankversion ihre eigenen unterstützten Einstellungen.
Beginnen Sie mit begrenzten Pools und Warteschlangen. Wenn der Bedarf kurzzeitig den Pool übersteigt, kann Warten sicherer sein, als unbegrenzt Sitzungen zu öffnen. Wird die Wartezeit für Benutzer sichtbar, untersuchen Sie zunächst Abfrage- und Speicherlatenz, bevor Sie den Pool vergrößern. Legen Sie explizite Timeouts für Verbindungen und den Verbindungserwerb fest, damit Fehler sichtbar werden, statt unbegrenzt zu hängen.
Neustarts, Wiederholungen und inaktive Verbindungen steuern
Staffeln Sie den Start der Container, damit Home Assistant, Dashboards, Analysen, Backups und Importe nicht alle gleichzeitig erneut eine Verbindung herstellen und Migrationen ausführen. Verwenden Sie Gesundheitsprüfungen, die die tatsächliche Bereitschaft der Datenbank testen, vermeiden Sie jedoch enge Wiederholungsschleifen, die während der Wiederherstellung der Datenbank eine Verbindungswelle erzeugen.
Legen Sie Lebensdauer und Recyclingverhalten inaktiver Verbindungen nur unter Berücksichtigung der Timeouts von Datenbank, Treiber, Proxy und Netzwerk fest. Ein Pool, der tote Sitzungen zu lange behält, verursacht Fehler; ein Pool, der Verbindungen zu aggressiv erneuert, erzeugt zusätzlichen Authentifizierungs- und Einrichtungsaufwand. Ändern Sie jeweils nur eine Timeout-Ebene.
Wenn Sie einen Verbindungsproxy einführen, überprüfen Sie Transaktionssemantik, Migrationen, vorbereitete Anweisungen und die Kompatibilität mit Home Assistant in einer Testumgebung. Ein Proxy ersetzt keine Diagnose langsamer Abfragen, von Sperren, Speichermangel oder Speicherproblemen.
Datenbankarbeit reduzieren, bevor Sie die Parallelität erhöhen
Überprüfen Sie die Recorder-Aufbewahrung, ausgeschlossene Entitäten mit hoher Frequenz, das Bereinigungsverhalten, die Datenbankgröße und langsame Abfragen. Wenn eine einzelne Home-Assistant-Abfrage eine Verbindung lange belegt, kann die Reduzierung unnötiger Daten oder die Behebung von Speicherlatenz den Durchsatz sicherer verbessern als das Hinzufügen weiterer Sitzungen.
Trennen Sie umfangreiche Analysen oder Langzeitmetriken nur dann vom Recorder, wenn die neue Pipeline ein klares Zuständigkeits- und Aufbewahrungsmodell besitzt. Richten Sie nicht zusammengehörige Container nicht auf das Schema von Home Assistant und lassen Sie sie nicht in Recorder-Tabellen schreiben; verwenden Sie unterstützte APIs oder unabhängige Datenbanken.
Überprüfen Sie vor einer Erhöhung des Serverlimits für Datenbankverbindungen den Speicherbedarf pro Verbindung, die Pufferkonfiguration, Sperrwartezeiten und Speicherlatenz. Der Server muss beim geplanten Spitzenwert reaktionsfähig bleiben und über ausreichende Kapazitäten für Wiederherstellung und Verwaltung verfügen.
Unter gleichzeitigem Start und bei Recorder-Spitzenlast validieren
Starten Sie die Datenbank- und Client-Container in der geplanten Reihenfolge neu und wiederholen Sie den Vorgang mit der stärksten sicheren Überschneidung: Home-Assistant-Start, Verlaufsabfragen, Importe, Backups und der Spitzenbedarf eines weiteren Dienstes. Beobachten Sie Verbindungsanzahl, Wartezeit beim Verbindungserwerb, Fehler, Abfragelatenz, Sperren und Host-E/A.
Eine erfolgreiche Konfiguration hält die Steuerung und den Verlauf von Home Assistant reaktionsfähig, bleibt innerhalb des Verbindungsbudgets, erhält den Verwaltungszugriff und leert temporäre Warteschlangen nach dem Spitzenwert. Führen Sie den Neustart zweimal durch und beobachten Sie das nächste geplante Wartungsfenster, um die dauerhafte Wirksamkeit zu bestätigen.
Führen Sie ein Rollback durch, wenn Timeouts, Fehler wegen zu vieler Verbindungen, Speicherdruck auf der Datenbank oder ein Recorder-Rückstand zunehmen. Eskalieren Sie mit der Topologie, Sitzungszahlen pro Benutzer, Pool-Einstellungen, Belegen zu langsamen Abfragen und Speichermetriken statt mit einer einzelnen Zahl für maximale Verbindungen.
Support & Tipps
Mehr zum Lesen

So verhindern Sie doppelte Jobs oder Importe in Home Assistant
Verwenden Sie Traces und eindeutige Operationsschlüssel, damit Automatisierungen und Importe sicher wiederholt werden können, ohne doppelte Aktionen oder Datensätze zu erzeugen.

So reparieren Sie Home Assistant, nachdem das Datenbank-Volume vollgelaufen ist
Eine vollständig belegte Recorder-Partition wiederherstellen, ohne zuvor Beweise zu löschen, anschließend das Wachstum reduzieren und nachweisen, dass Verlauf und Automatisierungen einen Neustart überstehen.

Warum erstellt Home Assistant fehlende Dateien mit dem falschen Besitzer neu?
Gleiche die Laufzeit-UID und -GID an den Host-Pfad an, repariere nur die betroffenen Dateien im gestoppten Zustand und überprüfe den Besitz nach der Neuerstellung.

