Skonfiguruj pamięć podręczną Home Assistant, najpierw określając, które dane można usunąć; nigdy nie przenoś całej ścieżki trwałej konfiguracji do pamięci tymczasowej.
„Pamięć podręczna” może oznaczać zasoby frontendowe przeglądarki, dane wyjściowe TTS, tymczasowe pliki specyficzne dla integracji, katalog /tmp kontenera, pamięć podręczną stron systemu operacyjnego lub obszar roboczy bazy danych. Te warstwy mają różnych właścicieli i różnie zachowują się podczas odzyskiwania danych. Użytkowników, rejestry, konfigurację, stan Recordera i inne pliki źródłowe przechowuj na trwałym nośniku. Używaj tmpfs lub pamięci opartej na RAM wyłącznie dla udokumentowanej ścieżki tymczasowej, której utratę i zużycie pamięci przetestowano po ponownym uruchomieniu.
Określ typ pamięci podręcznej przed przeniesieniem dowolnej ścieżki
Zacznij od określenia właściciela, ścieżki, maksymalnego oczekiwanego rozmiaru, metody odbudowy oraz skutków zniknięcia danych. Pamięć podręczna przeglądarki znajduje się na urządzeniu klienckim; trwały stan aplikacji Home Assistant znajduje się w skonfigurowanej ścieżce danych; pamięci podręczne integracji różnią się między sobą; tymczasowe pliki kontenera mogą zniknąć po ponownym uruchomieniu. Nie należy rozwiązywać tych problemów za pomocą jednego globalnego ustawienia „katalogu pamięci podręcznej”.
Przypadek TTS w Home Assistant pokazuje wąski przykład, w którym generowany dźwięk w określonej ścieżce pamięci podręcznej celowo przekierowano do lokalizacji opartej na RAM. Najważniejsze w przypadku przenoszenia tymczasowej pamięci podręcznej TTS jest to, że użytkownik wskazał jeden katalog możliwy do odtworzenia, a nie całe drzewo konfiguracji.
Jeśli nie możesz udowodnić, że plik może zniknąć bez utraty tożsamości, historii, ustawień, pulpitów nawigacyjnych lub rejestracji integracji, zaklasyfikuj go jako trwały. Najbezpieczniejszym ustawieniem domyślnym jest trwały nośnik. Optymalizację przeprowadź dopiero po ustaleniu zasad odzyskiwania danych.
Przechowuj trwały stan Home Assistant i Recorder na niezawodnym nośniku
Zamontowany katalog konfiguracji nie jest pamięcią podręczną tylko dlatego, że zawiera pewne wygenerowane pliki. Może zawierać dane uwierzytelniające, rejestry encji i urządzeń, stan automatyzacji, konfigurację, komponenty niestandardowe oraz domyślną bazę danych Recordera. Umieszczenie całej tej ścieżki w tmpfs zamienia ponowne uruchomienie w utratę danych i sprawia, że kopie zapasowe zależą od zawartości pamięci, która nigdy nie miała być źródłem danych.
Wyjaśnienie ZimaSpace dotyczące ról trwałych danych Home Assistant stanowi właściwy pierwszy filtr: przed przypisaniem poziomów pamięci masowej oddziel stan źródłowy od możliwej do odbudowania pamięci podręcznej i tymczasowych danych roboczych.
Używaj dysku SSD lub innego niezawodnego trwałego systemu plików dla stanu aplikacji i pozostaw wystarczająco dużo wolnego miejsca na rozrost bazy danych, aktualizacje i konserwację. Przeniesienie niewielkiej tymczasowej pamięci podręcznej do RAM nie naprawi zbyt małego lub uszkodzonego woluminu trwałego.
Używaj tmpfs wyłącznie dla wyraźnie tymczasowych ścieżek z limitem pamięci
Tmpfs może ograniczyć liczbę zapisów i zapewnić bardzo małe opóźnienia, ale zużywa pamięć RAM hosta i znika po zatrzymaniu kontenera lub hosta. Dzięki temu nadaje się do ograniczonych danych roboczych, a nie do danych wymaganych po ponownym uruchomieniu. Rozmiar montowania należy również ustawić tak, aby tymczasowe obciążenie nie mogło zużyć pamięci potrzebnej Home Assistant Core i innym usługom.
Aktualny przewodnik Docker Compose wyjaśnia, że użycie tmpfs wlicza się do limitu pamięci i może prowadzić do błędów braku miejsca lub OOM, gdy rozmiar jest zbyt duży albo nieograniczony względem budżetu pamięci kontenera.
Ustaw limit rozmiaru, monitoruj szczytowe zużycie i celowo uruchom ponownie kontener. Ścieżka powinna automatycznie się odtworzyć, a użytkownicy, ustawienia, historia i integracje powinny pozostać niezmienione. Jeśli aplikacja nie potrafi odbudować katalogu lub traktuje jego brak jako uszkodzenie, przenieś go z powrotem na trwały nośnik.
Traktuj pamięć podręczną frontendu jako problem klienta, a nie serwera
Nieaktualna strona Home Assistant w jednej przeglądarce może utrzymywać się nawet wtedy, gdy serwer działa prawidłowo, ponieważ zasoby frontendu są buforowane przez przeglądarkę lub aplikację. Usunięcie tymczasowych plików po stronie serwera nie naprawi tego stanu klienta. Z kolei wyczyszczenie pamięci podręcznej przeglądarki nie zmniejszy liczby operacji wejścia-wyjścia Recordera na dysku ani nie zmniejszy bazy danych Home Assistant.
Użytkownicy Home Assistant wyraźnie rozróżniają pamięć podręczną frontendu jako pamięć podręczną przeglądarki, dlatego diagnostykę należy rozpocząć od ustalenia, czy problem występuje na jednym urządzeniu klienckim, czy na całym serwerze.
Użyj czystej przeglądarki lub prywatnego profilu jako testu kontrolnego. Jeśli na nowym kliencie wszystko działa prawidłowo, pozostaw rozwiązanie po stronie frontendu. Jeśli każdy klient pokazuje te same brakujące dane lub błąd serwera, nie czyść dalej lokalnych pamięci podręcznych; przejdź do diagnostyki logów Home Assistant, pamięci masowej, integracji lub bazy danych.
Testuj pamięć tymczasową po ponownym uruchomieniu, pod obciążeniem i przy małej ilości wolnego miejsca
Po zmianie ścieżki pamięci podręcznej lub tmpfs zmierz normalny i szczytowy rozmiar, ilość dostępnej pamięci hosta, obciążenie pamięci kontenera, ilość wolnego miejsca na woluminie trwałym oraz zachowanie po ponownym uruchomieniu. Następnie uruchom obciążenie, które tworzy pamięć podręczną — TTS, multimedia, przetwarzanie przez niestandardową integrację lub inny znany proces — i potwierdź, że czyszczenie przebiega zgodnie z oczekiwaniami.
Na trwałym nośniku pozostaw zapas miejsca na operacje wymagające tymczasowej przestrzeni roboczej, nawet jeśli codzienna baza danych bez problemu się mieści. Nie zapełniaj trwałego woluminu tylko dlatego, że pamięć RAM sprawiła, iż zwykłe zapisy zajmują mniej miejsca; aktualizacje, konserwacja bazy danych, kopie zapasowe i nagłe przyrosty logów mogą wymagać zupełnie innej ilości wolnego miejsca tymczasowego.
Test można uznać za zaliczony, gdy każda tymczasowa ścieżka może zniknąć i się odbudować, stan trwały przetrwa ponowne uruchomienie kontenera i hosta, szczytowe użycie tmpfs mieści się w budżecie pamięci, a Home Assistant nadal ma wystarczająco dużo wolnego miejsca na trwałym nośniku. Jeśli po teście zniknie którekolwiek wymagane ustawienie lub historia, ścieżka została błędnie zaklasyfikowana i przed dalszym dostrajaniem należy przywrócić ją na trwały nośnik.
Wsparcie i wskazówki
Więcej do przeczytania

Czy Home Assistant może współdzielić kartę graficzną lub akcelerator z innym kontenerem?
Współdzielenie GPU zależy od obciążenia: kontenery często mogą współdzielić węzły renderowania, natomiast przekazywanie całego urządzenia do maszyny wirtualnej zazwyczaj zmienia granicę.

Jak ustalić, czy błąd Home Assistant pochodzi od klienta, czy serwera
Awarie występujące u jednego klienta wskazują na stan klienta, a awarie występujące u wielu klientów — na serwer lub współdzielone proxy, sieć albo ścieżkę...

Jak zapobiec przechwytywaniu niespójnego stanu bazy danych w kopiach zapasowych Home Assistant
W przypadku działających systemów używaj kopii zapasowych uwzględniających Home Assistant; jeśli tworzysz surowe kopie plików, wstrzymaj bazę danych i zweryfikuj przywracanie, zanim zaufasz archiwum.

