Configura la cache di Home Assistant identificando innanzitutto quali dati sono eliminabili; non spostare mai l'intero percorso della configurazione persistente su uno spazio di archiviazione temporaneo.
“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 comportamenti di ripristino diversi. Mantieni utenti, registri, configurazione, stato del Recorder e altri file autorevoli su uno spazio di archiviazione durevole. Usa tmpfs o uno spazio di archiviazione basato sulla RAM solo per un percorso eliminabile documentato, la cui perdita e il cui consumo di memoria siano stati verificati attraverso un riavvio.
Classifica la cache prima di spostare qualsiasi percorso
Inizia identificando il proprietario, il percorso, le dimensioni massime previste, il metodo di ricostruzione e cosa accade se i dati scompaiono. La cache del browser risiede sul client; lo stato applicativo persistente di Home Assistant risiede 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 TTS di Home Assistant mostra un esempio circoscritto in cui l'audio generato in uno specifico percorso della cache è stato reindirizzato intenzionalmente a una posizione basata sulla RAM. Il confine importante nello spostamento di una cache TTS eliminabile è che l'utente ha scelto una sola directory rigenerabile, non l'intero albero di configurazione.
Se non puoi dimostrare che un file può scomparire senza perdere identità, cronologia, impostazioni, dashboard o registrazione dell'integrazione, classificandolo come persistente. L'impostazione predefinita più sicura è lo spazio di archiviazione durevole. L'ottimizzazione viene dopo aver definito chi è responsabile del ripristino.
Mantieni lo stato persistente di Home Assistant e il Recorder su uno spazio durevole
Il volume della configurazione non è una cache solo perché contiene alcuni file generati. Può contenere autenticazione, registri di entità e dispositivi, stato delle automazioni, configurazione, componenti personalizzati e il database predefinito del Recorder. Collocare l'intero percorso su tmpfs trasforma un riavvio in una perdita di dati e fa dipendere i backup dal contenuto della memoria, che non è mai stato concepito come autorevole.
La spiegazione di ZimaSpace sui ruoli dei dati persistenti di Home Assistant è il filtro iniziale corretto: separa lo stato autorevole dalla cache ricostruibile e dai dati temporanei di lavoro prima di assegnare i livelli di archiviazione.
Usa un SSD o un altro filesystem durevole 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 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 delimitati, non a elementi necessari dopo un riavvio. Anche il mount deve essere dimensionato in modo che un carico temporaneo non possa consumare la memoria necessaria a Home Assistant Core e ai servizi vicini.
Una guida aggiornata a Docker Compose spiega che l'utilizzo di tmpfs viene conteggiato nella capacità di memoria e può causare errori di spazio esaurito o condizioni di OOM quando è sovradimensionato o senza limiti rispetto al budget del container.
Imposta un limite massimo, monitora l'utilizzo di picco e riavvia deliberatamente il container. Il percorso dovrebbe ripopolarsi automaticamente, mentre utenti, impostazioni, cronologia e integrazioni rimangono invariati. Se l'applicazione non è in grado di ricostruire la directory o considera la sua assenza un danneggiamento, riportala su uno spazio di archiviazione durevole.
Considera la cache frontend un problema del client, non dello spazio di archiviazione del server
Una pagina di Home Assistant obsoleta in un browser può persistere anche quando il server funziona correttamente, perché le risorse frontend vengono memorizzate nella cache dal browser o dall'app. Cancellare i file temporanei lato server non risolverà lo stato del client. Al contrario, cancellare la cache del browser non riduce l'I/O del disco del Recorder né rende più piccolo il database di Home Assistant.
Gli utenti di Home Assistant distinguono esplicitamente la cache frontend come cache del browser, motivo per cui la diagnosi dovrebbe iniziare identificando se il sintomo esiste su un solo client o sull'intero server.
Usa un browser pulito o un profilo privato come controllo di convalida. Se il nuovo client funziona correttamente, mantieni la soluzione sul percorso frontend. Se ogni client mostra gli stessi dati mancanti o lo stesso errore lato server, non continuare a cancellare le cache locali; torna alla risoluzione dei problemi relativi ai log di Home Assistant, allo spazio di archiviazione, all'integrazione o al database.
Convalida lo spazio temporaneo attraverso 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 dell'host, la pressione sulla memoria del container, lo spazio libero del volume persistente e il comportamento al riavvio. Esegui quindi il carico di lavoro che crea la cache, come TTS, contenuti multimediali, elaborazione di un'integrazione personalizzata o un altro produttore noto, e verifica che la pulizia avvenga come previsto.
Lascia margine nello spazio di archiviazione durevole per le operazioni che richiedono spazio di lavoro temporaneo, anche se il database quotidiano rientra comodamente nella capacità disponibile. Non riempire il volume persistente solo perché una cache RAM ha fatto sembrare inferiori le scritture normali; aggiornamenti, manutenzione del database, backup e picchi dei log possono avere requisiti di spazio temporaneo molto diversi.
Il test è superato quando ogni percorso eliminabile può scomparire e ricostruirsi, lo stato persistente sopravvive al riavvio del container e dell'host, l'utilizzo di picco di tmpfs rimane entro il budget di memoria e Home Assistant dispone ancora di spazio libero durevole sufficiente. Se una qualsiasi impostazione o cronologia necessaria scompare dopo il test, il percorso è stato classificato erroneamente e deve essere riportato allo spazio di archiviazione persistente prima di procedere con ulteriori ottimizzazioni.
Supporto e consigli
Altro da leggere

Home Assistant può condividere una GPU o un acceleratore con un altro container?
La condivisione della GPU dipende dal carico di lavoro: i container possono spesso condividere i nodi di rendering, mentre il passthrough dell’intero dispositivo a...

Come capire se un errore di Home Assistant proviene dal client o dal server
I guasti che interessano un solo client indicano uno stato del client; quelli che interessano più client indicano il server o un proxy, una...

Come evitare che i backup di Home Assistant acquisiscano uno stato incoerente del database
Usa backup compatibili con Home Assistant per i sistemi in produzione; se crei copie grezze dei file, sospendi il database e verifica il ripristino...

