Der Speicherverbrauch von Home Assistant kann hoch bleiben, weil der Prozess oder Host nach abgeschlossenen Aufgaben wiederverwendbare Speicherseiten behält. Ein ansteigendes Plateau über identische Zyklen hinweg kann jedoch auf ein Leck in einer Integration, einem Add-on oder einer bestimmten Version hindeuten.
Eine Sicherung, Datenbankaufgabe, ein Neuladen oder ein Update kann den residenten Speicher und den Dateisystem-Cache erhöhen, ohne dass die Kurve sofort auf ihr vorheriges Niveau zurückkehrt. Erfassen Sie die Ansichten für Prozess, Container, VM, Swap und Host-Cache getrennt voneinander. Wiederholen Sie denselben Auslöser und beurteilen Sie den Anstieg sowie den Zustand des Dienstes statt nur eine einzelne Momentaufnahme.
Bestätigen, welche Speicherzahl hoch bleibt
Erfassen Sie zu denselben Zeitpunkten den residenten Speicher des Home-Assistant-Prozesses, die Nutzung von Container oder VM, den verfügbaren Host-Speicher, den Cache, den Swap und jedes cgroup-Limit. Eine Host-Kurve, die rückgewinnbaren Cache einschließt, beantwortet eine andere Frage als der residente Speicherbereich des Prozesses.
Prüfen Sie, ob die sichtbare Aufgabe tatsächlich abgeschlossen ist, indem Sie das letzte Protokollereignis, die CPU-Aktivität, die Datenbank-Ein-/Ausgabe und den Zustand der Integration vergleichen. Hintergrundbereinigung, Indizierung, Wiederholungsversuche oder Add-on-Aufgaben können fortgesetzt werden, nachdem die Benutzeroberfläche den Abschluss meldet.
Wenn der Prozessspeicher stabil bleibt und der Host weiterhin über ausreichend verfügbaren Speicher ohne Swap-Druck verfügt, beobachten Sie einen weiteren normalen Zyklus. Wenn Prozessspeicher, Swap oder OOM-Druck weiter ansteigen, sichern Sie den zeitlichen Verlauf und grenzen Sie den Auslöser ein.
Dieselbe Arbeitslast wiederholen und das Plateau ablesen
Führen Sie dieselbe begrenzte Aufgabe bei gleicher Datenmenge zwei- oder dreimal aus und lassen Sie nach jedem Durchlauf eine festgelegte Ruhephase verstreichen. Erfassen Sie den Ausgangswert vor der Aufgabe, den Spitzenwert, das Plateau nach der Aufgabe und ob der nächste Zyklus über dem vorherigen beginnt.
Ein Fall von hohem Speicherverbrauch nach Upgrades belegt keinen aktuellen, allgemein gültigen Fehler. Er rechtfertigt lediglich den Vergleich der Plateaus vor und nach dem Upgrade auf dem betroffenen System.
Ein ähnliches Plateau, das sich ohne zunehmende Swap-Nutzung stabilisiert, ist normalerweise ein Beobachtungsfall und kein Notfall. Eine Treppe, die nach jedem identischen Zyklus ansteigt, das System schließlich verlangsamt oder sich dem Limit nähert, erfordert eine Eingrenzung.
Core, Integrationen, Add-ons und Host-Cache voneinander abgrenzen
Vergleichen Sie den Home-Assistant-Prozess mit jedem Add-on und benachbarten Container. Führen Sie anschließend, sofern verfügbar, einen kontrollierten Test im abgesicherten Modus oder unter Ausschluss benutzerdefinierter Integrationen durch. Ändern Sie pro Zyklus nur eine Komponente und behalten Sie den ursprünglichen Auslöser bei.
Nutzen Sie die integrationsbezogene Eingrenzung und das Startverhalten als Hinweise, nicht als Beweis dafür, dass die langsamste Integration den Speicherverbrauch verursacht.
Wenn das Wachstum ohne benutzerdefinierte Integrationen stoppt, aktivieren Sie diese gruppenweise wieder, bis der Anstieg zurückkehrt. Wenn stattdessen der Speicherverbrauch eines Add-ons wächst, beheben Sie diesen Dienst. Wenn nur der Host-Cache wächst, während der verfügbare Speicher ausreichend bleibt, setzen Sie kein kleineres Limit, nur damit die Kurve fällt.
Die passende Maßnahme anwenden und erneut reproduzieren
Aktualisieren oder deaktivieren Sie nur die bestätigte Komponente, begrenzen Sie eine unbeschränkte Arbeitslast, beheben Sie eine Datenbank- oder Protokollierungsschleife oder passen Sie das Container-Limit erst an, nachdem Sie den normalen Spitzenwert gemessen haben. Starten Sie das System einmal als Validierungsschritt neu und wiederholen Sie anschließend die ursprüngliche Arbeit. Ein Neustart allein ist keine Lösung.
Die Abhängigkeitsanalyse im Modell zur Leistungsgrenze von Home Assistant hilft zu verhindern, dass Speicher- oder Add-on-Druck fälschlicherweise als Speicherwachstum des Core eingestuft wird.
Beenden Sie die Untersuchung, wenn sich wiederholte Zyklen bei einem begrenzten Plateau ohne Swap-, OOM- oder Latenzprobleme einpendeln. Eskalieren Sie den Fall mit Versionsnummer, Installationstyp, Prozess- und Host-Metriken, den Auslöserschritten, einem Vergleich im abgesicherten Modus und einem Zeitreihendiagramm, wenn das Wachstum auf einem sauberen, reproduzierbaren Pfad anhält.
Support & Tipps
Mehr zum Lesen

So optimieren Sie Immich-Datenbankverbindungen für gleichzeitig ausgeführte Container
Erhöhen Sie max_connections nicht als Erstes. Messen Sie die Immich-Sitzungen, summieren Sie den Bedarf aller Container, halten Sie Kapazitäten für die Administration frei und...

So verhindern Sie doppelte Jobs oder Importe in Immich
Trennen Sie wiederholte Aufträge von doppelten Assets. Verwenden Sie einen einzigen kanonischen Aufnahmeweg, kontrollieren Sie Wiederholungsversuche und Pfadänderungen und testen Sie anschließend den erneuten...

So reparieren Sie Immich, nachdem das Datenbank-Volume vollgelaufen ist
Löschen Sie niemals PostgreSQL-WAL-Dateien, um Speicherplatz freizugeben. Stoppen Sie Schreibvorgänge von Immich, bewahren Sie den Datenbankstatus, schaffen Sie sicheren zusätzlichen Speicherplatz, stellen Sie PostgreSQL...

