De cache en tijdelijke opslag van Home Assistant configureren

Eva Wong is de Technisch Schrijver en en vaste knutselaar bij ZimaSpace. Een levenslange geek met een passie voor homelabs en open-source software, zij is gespecialiseerd in het vertalen van complexe technische concepten naar toegankelijke, praktische handleidingen. Eva gelooft dat zelf-hosting leuk moet zijn, niet intimiderend. Met haar tutorials stelt ze de community in staat om hardware-setup te ontrafelen, van het bouwen van hun eerste NAS tot het beheersen van Docker-containers.

Configureer de cache van Home Assistant door eerst vast te stellen welke gegevens wegwerpbaar zijn; verplaats nooit het volledige pad met permanente configuratie naar tijdelijke opslag.

‘Cache’ kan verwijzen naar frontend-assets van de browser, TTS-uitvoer, tijdelijke bestanden die specifiek zijn voor een integratie, de /tmp van een container, de paginacache van het besturingssysteem of werkruimte voor de database. Deze lagen hebben verschillende beheerders en herstelgedrag. Bewaar gebruikers, registers, configuratie, de status van Recorder en andere gezaghebbende bestanden op duurzame opslag. Gebruik tmpfs of RAM-gebaseerde opslag alleen voor een gedocumenteerd wegwerppad waarvan je het verlies en geheugengebruik na een herstart hebt getest.

Classificeer de cache voordat je een pad verplaatst

Begin met het vastleggen van de eigenaar, het pad, de maximaal verwachte grootte, de methode om de gegevens opnieuw op te bouwen en wat er gebeurt als de gegevens verdwijnen. De browsercache bevindt zich op de client; de permanente applicatiestatus van Home Assistant staat onder het geconfigureerde gegevenspad; integratiecaches verschillen; tijdelijke containerbestanden kunnen bij een herstart verdwijnen. Deze problemen los je niet op met één globale instelling voor een ‘cachemap’.

Een TTS-geval in Home Assistant laat een beperkt voorbeeld zien waarbij gegenereerde audio onder een specifiek cachepad bewust naar een RAM-gebaseerde locatie werd omgeleid. De belangrijke grens bij het verplaatsen van een wegwerpcache voor TTS is dat de gebruiker één opnieuw op te bouwen map selecteerde, niet de volledige configuratiestructuur.

Als je niet kunt aantonen dat een bestand kan verdwijnen zonder verlies van identiteit, geschiedenis, instellingen, dashboards of integratieregistratie, classificeer het dan als permanent. De veiligste standaard is duurzame opslag. Optimalisatie komt pas nadat duidelijk is wie verantwoordelijk is voor het herstel.

Bewaar de permanente status van Home Assistant en Recorder op duurzame opslag

De configuratiekoppeling is geen cache alleen omdat deze enkele gegenereerde bestanden bevat. Ze kan authenticatie, registers van entiteiten en apparaten, de status van automatiseringen, configuratie, aangepaste componenten en de standaarddatabase van Recorder bevatten. Als je het volledige pad op tmpfs zet, verandert een herstart in gegevensverlies en worden back-ups afhankelijk van geheugeninhoud die nooit als gezaghebbend bedoeld was.

De uitleg van ZimaSpace over de rollen van permanente gegevens in Home Assistant is het juiste eerste filter: scheid gezaghebbende status van opnieuw op te bouwen cache en tijdelijke werkgegevens voordat je opslaglagen toewijst.

Gebruik een SSD of een ander betrouwbaar duurzaam bestandssysteem voor de applicatiestatus en reserveer voldoende vrije ruimte voor databasegroei, upgrades en onderhoud. Het verplaatsen van een kleine wegwerpcache naar RAM compenseert geen te klein of defect permanent volume.

Gebruik tmpfs alleen voor expliciet wegwerpbare paden met een geheugenlimiet

Tmpfs kan schrijfbewerkingen verminderen en een zeer lage latentie bieden, maar gebruikt RAM van de host en verdwijnt wanneer de container of host stopt. Daardoor is het geschikt voor begrensde tijdelijke gegevens, niet voor iets wat na een herstart nodig is. De koppeling moet bovendien zo worden ingesteld dat een tijdelijke belasting niet het geheugen kan opgebruiken dat Home Assistant Core en aangrenzende services nodig hebben.

Een actuele Docker Compose-handleiding legt uit dat tmpfs-gebruik meetelt voor de geheugencapaciteit en kan leiden tot meldingen over onvoldoende ruimte of OOM-fouten wanneer het te groot of onbeperkt is ten opzichte van het containerbudget.

Stel een maximale grootte in, houd het piekgebruik in de gaten en herstart de container bewust. Het pad moet automatisch opnieuw worden gevuld, terwijl gebruikers, instellingen, geschiedenis en integraties ongewijzigd blijven. Als de applicatie de map niet opnieuw kan opbouwen of de afwezigheid ervan als beschadiging beschouwt, zet je deze terug op duurzame opslag.

Behandel frontendcache als een clientprobleem, niet als serveropslag

Een verouderde Home Assistant-pagina in één browser kan blijven bestaan terwijl de server gezond is, omdat frontendbronnen door de browser of app worden gecachet. Het wissen van tijdelijke bestanden aan de serverzijde lost die clientstatus niet op. Omgekeerd vermindert het wissen van de browsercache de I/O-belasting van Recorder niet en maakt het de Home Assistant-database niet kleiner.

Gebruikers van Home Assistant onderscheiden expliciet frontendcache als browsercache. Daarom moet het oplossen van cacheproblemen beginnen met vaststellen of het symptoom op één client of op de hele server voorkomt.

Gebruik een schone browser of een privéprofiel als controlemiddel. Als de nieuwe client goed werkt, houd de oplossing dan aan de frontendkant. Als elke client dezelfde ontbrekende gegevens of serverfout toont, blijf dan niet de lokale caches wissen; ga verder met het onderzoeken van Home Assistant-logs, opslag, integraties of de database.

Test tijdelijke opslag met herstarts, belasting en vrije ruimte

Meet na het wijzigen van een cache- of tmpfs-pad de normale en maximale grootte, het beschikbare geheugen op de host, de geheugendruk van de container, de vrije ruimte op het permanente volume en het gedrag na een herstart. Voer vervolgens de belasting uit die de cache aanmaakt—TTS, media, verwerking door een aangepaste integratie of een andere bekende producent—en controleer of het opruimen verloopt zoals verwacht.

Houd ruimte vrij op duurzame opslag voor bewerkingen die tijdelijke werkruimte nodig hebben, zelfs als de dagelijkse database comfortabel past. Vul het permanente volume niet omdat een RAM-cache normale schrijfbewerkingen kleiner deed lijken; upgrades, databaseonderhoud, back-ups en pieken in logbestanden kunnen heel andere eisen aan tijdelijke ruimte stellen.

De test is geslaagd wanneer elk wegwerppad kan verdwijnen en opnieuw kan worden opgebouwd, de permanente status een herstart van de container en host overleeft, het piekgebruik van tmpfs binnen het geheugenbudget blijft en Home Assistant voldoende vrije ruimte op duurzame opslag behoudt. Als een vereiste instelling of geschiedenis na de test verdwenen is, was het pad verkeerd geclassificeerd en moet het vóór verdere afstemming worden teruggezet naar permanente opslag.

Ondersteuning & Tips

Meer om te lezen

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.