Så här konfigurerar du cache och tillfällig lagring i Home Assistant

Eva Wong är teknisk skribent och händig hemmabyggare på ZimaSpace. Som tekniknörd sedan barnsben med ett brinnande intresse för hemlabb och programvara med öppen källkodspecialiserar hon sig på att göra komplexa tekniska koncept begripliga genom praktiska, praktiska guider. Eva tycker att självhosting ska vara roligt, inte avskräckande. Genom sina handledningar hjälper hon communityn att göra hårdvaruinstallationer mindre mystiska, från att bygga sin första NAS till att bemästra Docker-containrar.

Konfigurera Home Assistants cache genom att först identifiera vilka data som är tillfälliga; flytta aldrig hela den beständiga konfigurationssökvägen till tillfällig lagring.

”Cache” kan syfta på frontendresurser i webbläsaren, TTS-utdata, tillfälliga filer som är specifika för en integration, containerns /tmp, operativsystemets sidcache eller databasens arbetsutrymme. Dessa lager har olika ägare och återställningsbeteenden. Förvara användare, register, konfiguration, Recorder-tillstånd och andra auktoritativa filer på beständig lagring. Använd tmpfs eller RAM-baserad lagring endast för en dokumenterad, tillfällig sökväg vars dataförlust och minnesanvändning du har testat genom en omstart.

Klassificera cachen innan du flyttar någon sökväg

Börja med att ange ägare, sökväg, förväntad maximal storlek, metod för återskapande och vad som händer om data försvinner. Webbläsarens cache finns på klienten; Home Assistants beständiga apptillstånd finns under dess konfigurerade datasökväg; integrationscache varierar; tillfälliga containerfiler kan försvinna vid omstart. De bör inte hanteras med en enda global inställning för ”cachekatalog”.

Ett exempel med Home Assistant TTS visar ett avgränsat fall där genererat ljud under en viss cache-sökväg medvetet omdirigerades till en RAM-baserad plats. Den viktiga avgränsningen när du flyttar en tillfällig TTS-cache är att användaren riktade in sig på en enda återskapningsbar katalog, inte hela konfigurationsträdet.

Om du inte kan bevisa att en fil kan försvinna utan att identitet, historik, inställningar, instrumentpaneler eller integrationsregistrering går förlorade, klassificerar du den som beständig. Det säkraste standardvalet är beständig lagring. Optimera först när du vet vem som ansvarar för återställningen.

Lagra Home Assistants beständiga tillstånd och Recorder på beständig lagring

Konfigurationsmonteringen är inte en cache bara för att den innehåller vissa genererade filer. Den kan innehålla autentisering, register över entiteter och enheter, automatiseringstillstånd, konfiguration, anpassade komponenter och den förvalda Recorder-databasen. Om du lägger hela sökvägen på tmpfs leder en omstart till dataförlust och gör säkerhetskopior beroende av minnesinnehåll som aldrig var avsett att vara auktoritativt.

ZimaSpaces förklaring av Home Assistants roller för beständiga data är det rätta första filtret: skilj auktoritativt tillstånd från återskapningsbar cache och tillfälliga arbetsdata innan du tilldelar lagringsnivåer.

Använd en SSD eller ett annat tillförlitligt, beständigt filsystem för appens tillstånd och reservera tillräckligt med ledigt utrymme för databasens tillväxt, uppgraderingar och underhåll. Att flytta en liten, tillfällig cache till RAM kan inte kompensera för en för liten eller felande beständig volym.

Använd endast tmpfs för uttryckligen tillfälliga sökvägar med en minnesgräns

Tmpfs kan minska antalet skrivningar och ge mycket låg latens, men förbrukar värdens RAM-minne och försvinner när containern eller värden stängs av. Därför passar det för begränsade temporära data, inte för något som måste finnas kvar efter en omstart. Monteringen måste också dimensioneras så att en tillfällig arbetsbelastning inte kan förbruka det minne som Home Assistant Core och närliggande tjänster behöver.

En aktuell guide till Docker Compose förklarar att användning av tmpfs räknas in i minneskapaciteten och kan leda till utrymmesbrist eller OOM-fel om den är överdimensionerad eller saknar gräns i förhållande till containerns minnesbudget.

Ange en storleksgräns, övervaka maximal användning och starta om containern medvetet. Sökvägen ska fyllas på automatiskt igen, medan användare, inställningar, historik och integrationer förblir oförändrade. Om programmet inte kan återskapa katalogen eller tolkar frånvaron som korruption ska du återföra den till beständig lagring.

Se frontend-cachen som ett klientproblem, inte som serverlagring

En inaktuell Home Assistant-sida kan ligga kvar i en webbläsare även när servern fungerar, eftersom webbläsaren eller appen cachar frontend-resurser. Rensning av tillfälliga filer på serversidan löser inte det problemet på klienten. Omvänt minskar rensning av webbläsarens cache inte disk-I/O för Recorder och gör inte Home Assistant-databasen mindre.

Home Assistant-användare skiljer uttryckligen mellan frontend-cache och webbläsarens cache, och därför bör felsökning av cache börja med att ta reda på om problemet finns på en enskild klient eller på hela servern.

Använd en ren webbläsare eller privat profil som kontroll vid valideringen. Om den nya klienten fungerar som den ska, låt korrigeringen ligga kvar på frontend-sidan. Om alla klienter visar samma saknade data eller serverfel ska du inte fortsätta rensa lokala cacher; gå i stället tillbaka till felsökning av Home Assistant-loggar, lagring, integrationer eller databasen.

Validera tillfällig lagring genom tester av omstart, minnestryck och ledigt utrymme

Mät normal och maximal storlek, tillgängligt minne på värden, minnestryck i containern, ledigt utrymme på den beständiga volymen och beteendet vid omstart efter att du har ändrat en cache- eller tmpfs-sökväg. Kör sedan arbetsbelastningen som skapar cachen - TTS, media, bearbetning av anpassade integrationer eller en annan känd källa - och bekräfta att rensningen sker som förväntat.

Lämna marginal på beständig lagring för åtgärder som behöver tillfälligt arbetsutrymme, även om databasen för den dagliga driften ryms med god marginal. Fyll inte den beständiga volymen bara för att en RAM-cache fick normala skrivningar att verka mindre; uppgraderingar, databasskötsel, säkerhetskopior och loggspikar kan ha helt andra krav på tillfälligt utrymme.

Godkänt när alla flyktiga sökvägar kan försvinna och återskapas, beständiga data överlever omstarter av containern och värden, maximal användning av tmpfs håller sig inom minnesbudgeten och Home Assistant fortfarande har tillräckligt med ledigt beständigt lagringsutrymme. Om någon obligatorisk inställning eller historik försvinner efter testet har sökvägen klassificerats fel och måste återföras till beständig lagring innan ytterligare finjustering.

Support och tips

Mer att läsa

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.