Come configurare la cache e l'archiviazione temporanea di Home Assistant

Eva Wong è la redattrice tecnica e appassionata di tecnologia di ZimaSpace. Geek da sempre, appassionata di homelab e software open source, è specializzata nel tradurre concetti tecnici complessi in guide pratiche. Eva crede che l’hosting autonomo debba essere divertente, non intimidatorio. Attraverso i suoi tutorial, aiuta la community a comprendere meglio le configurazioni hardware, dalla costruzione del primo NAS alla padronanza dei container Docker.

Configura la cache di Home Assistant identificando innanzitutto quali dati sono eliminabili; non spostare mai l'intero percorso di configurazione persistente su una memoria temporanea.

«Cache» può indicare le risorse frontend del browser, l'output TTS, i file temporanei specifici di un'integrazione, la directory /tmp di un container, la cache delle pagine del sistema operativo o lo spazio di lavoro del database. Questi livelli hanno proprietari e modalità di ripristino diversi. Mantieni su un supporto durevole gli utenti, i registri, la configurazione, lo stato di Recorder e gli altri file autorevoli. Usa tmpfs o un supporto basato sulla RAM solo per un percorso documentato e temporaneo, dopo aver verificato cosa comportano la sua perdita e il consumo di memoria in seguito a un riavvio.

Classifica la cache prima di spostare qualsiasi percorso

Inizia specificando il proprietario, il percorso, le dimensioni massime previste, il metodo di ricostruzione e cosa succede se i dati scompaiono. La cache del browser risiede sul client; lo stato persistente dell'applicazione Home Assistant si trova nel percorso dati configurato; le cache delle integrazioni variano; i file temporanei dei container possono scomparire al riavvio. Non dovrebbero essere gestiti con un'unica impostazione globale della «directory della cache».

Un caso di Home Assistant TTS mostra un esempio circoscritto in cui l'audio generato in un percorso di cache specifico è stato intenzionalmente reindirizzato a una posizione basata sulla RAM. Il confine importante nello spostare una cache TTS eliminabile è che l'utente ha selezionato una singola directory ricostruibile, non l'intero albero di configurazione.

Se non puoi dimostrare che un file può scomparire senza perdere identità, cronologia, impostazioni, dashboard o registrazioni delle integrazioni, consideralo persistente. La scelta predefinita più sicura è un supporto durevole. L'ottimizzazione viene dopo aver stabilito le responsabilità del ripristino.

Mantieni lo stato persistente di Home Assistant e Recorder su un supporto durevole

Il percorso di configurazione non è una cache solo perché contiene alcuni file generati. Può contenere credenziali di autenticazione, registri di entità e dispositivi, stato delle automazioni, configurazione, componenti personalizzati e il database Recorder predefinito. Mettere tutto quel percorso su tmpfs trasforma un riavvio in una perdita di dati e fa dipendere i backup da contenuti in memoria che non erano destinati a essere autorevoli.

La spiegazione di ZimaSpace sui ruoli dei dati persistenti di Home Assistant è il primo filtro corretto: separa lo stato autorevole dalla cache ricostruibile e dai dati di lavoro temporanei prima di assegnare i livelli di archiviazione.

Usa un SSD o un altro filesystem durevole e affidabile per lo stato dell'applicazione e riserva spazio libero sufficiente per la crescita del database, gli aggiornamenti e la manutenzione. Spostare una piccola cache eliminabile nella RAM non può compensare un volume persistente sottodimensionato o in fase di guasto.

Usa tmpfs solo per percorsi esplicitamente eliminabili e con un limite di memoria

Tmpfs può ridurre le scritture e offrire una latenza molto bassa, ma consuma la RAM dell’host e scompare quando il container o l’host si arresta. È quindi adatto a dati temporanei con limiti definiti, non a dati necessari dopo un riavvio. Inoltre, il mount deve essere dimensionato in modo che un carico di lavoro temporaneo non consumi la memoria necessaria ad Home Assistant Core e ai servizi vicini.

Una guida aggiornata a Docker Compose spiega che l’uso di tmpfs rientra nella capacità di memoria e può causare errori di spazio esaurito o OOM se è sovradimensionato o non limitato rispetto al budget di memoria del container.

Imposta un limite massimo di dimensioni, monitora l’uso di picco e riavvia deliberatamente il container. Il percorso dovrebbe ripopolarsi automaticamente, mentre utenti, impostazioni, cronologia e integrazioni restano invariati. Se l’applicazione non riesce a ricreare la directory o considera la sua assenza una corruzione, riportala nell’archiviazione persistente.

Considera la cache del frontend un problema del client, non dell’archiviazione del server

Una pagina di Home Assistant non aggiornata può persistere in un solo browser anche quando il server funziona correttamente, perché le risorse del frontend vengono memorizzate nella cache del browser o dell’app. Svuotare i file temporanei lato server non risolverà il problema su quel client. Al contrario, svuotare la cache del browser non riduce l’I/O su disco di Recorder né le dimensioni del database di Home Assistant.

Gli utenti di Home Assistant distinguono esplicitamente la cache del frontend dalla cache del browser; per questo la diagnosi dei problemi di cache dovrebbe iniziare verificando se il problema si presenta su un solo client o su tutto il server.

Usa un browser pulito o un profilo privato come controllo di convalida. Se il nuovo client funziona correttamente, mantieni la correzione sul percorso del frontend. Se tutti i client mostrano gli stessi dati mancanti o lo stesso errore lato server, non continuare a svuotare le cache locali: riprendi la diagnosi dei log, dello spazio di archiviazione, delle integrazioni o del database di Home Assistant.

Verifica lo spazio temporaneo con test di riavvio, pressione e spazio libero

Dopo aver modificato un percorso di cache o tmpfs, misura le dimensioni normali e di picco, la memoria disponibile sull’host, la pressione sulla memoria del container, lo spazio libero nel volume persistente e il comportamento al riavvio. Poi esegui il carico di lavoro che genera la cache - TTS, contenuti multimediali, elaborazione di integrazioni personalizzate o un altro processo noto - e verifica che la pulizia avvenga come previsto.

Lascia spazio libero nell’archiviazione persistente per le operazioni che richiedono spazio di lavoro temporaneo, anche se il database quotidiano occupa comodamente poco spazio. Non riempire il volume persistente solo perché una cache RAM fa sembrare più contenute le normali scritture: aggiornamenti, manutenzione del database, backup e picchi di log possono richiedere quantità di spazio temporaneo molto diverse.

Supera il test se ogni percorso temporaneo può essere eliminato e ricreato, i dati persistenti sopravvivono al riavvio del container e dell’host, l’uso massimo di tmpfs rientra nel budget di memoria e Home Assistant dispone ancora di spazio libero persistente sufficiente. Se dopo il test scompare un’impostazione o una cronologia necessaria, il percorso è stato classificato in modo errato e deve essere riportato nell’archiviazione persistente prima di ulteriori ottimizzazioni.

Assistenza e consigli

Altre letture

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.