Como configurar a cache e o armazenamento temporário do Home Assistant

Eva Wong é a Redatora Técnica e e entusiasta residente na ZimaSpace. Uma geek de longa data com paixão por homelabs e software de código aberto, ela é especialista em traduzir conceitos técnicos complexos em guias acessíveis e práticos . Eva acredita que o auto-hospedagem deve ser divertida, não intimidante. Através dos seus tutoriais, ela capacita a comunidade adesmistificar configurações de hardware , desde a construção do seu primeiro NAS até dominar os contêineres Docker., from building their first NAS to mastering Docker containers.

Configure a cache do Home Assistant começando por identificar quais dados são descartáveis; nunca mova todo o caminho de configuração persistente para armazenamento temporário.

“Cache” pode significar recursos do frontend do navegador, saída de TTS, ficheiros temporários específicos de integrações, o /tmp de um contentor, a cache de páginas do sistema operativo ou espaço de trabalho da base de dados. Essas camadas têm proprietários e comportamentos de recuperação diferentes. Mantenha utilizadores, registos, configuração, estado do Recorder e outros ficheiros autoritativos em armazenamento persistente. Utilize tmpfs ou armazenamento baseado em RAM apenas para um caminho descartável documentado, cuja perda e consumo de memória tenha testado após um reinício.

Classifique a Cache Antes de Mover Qualquer Caminho

Comece por identificar o proprietário, o caminho, o tamanho máximo esperado, o método de reconstrução e o que acontece se os dados desaparecerem. A cache do navegador reside no cliente; o estado persistente da aplicação Home Assistant reside no caminho de dados configurado; as caches das integrações variam; os ficheiros temporários do contentor podem desaparecer após um reinício. Estes elementos não devem ser resolvidos através de uma única definição global de “diretório de cache”.

Um caso de TTS do Home Assistant mostra um exemplo específico em que o áudio gerado num caminho de cache concreto foi redirecionado intencionalmente para uma localização baseada em RAM. O limite importante ao mover uma cache TTS descartável é que o utilizador visou um único diretório regenerável, não toda a árvore de configuração.

Se não puder provar que um ficheiro pode desaparecer sem perder a identidade, o histórico, as definições, os painéis ou o registo de uma integração, classifique-o como persistente. A predefinição mais segura é o armazenamento persistente. A otimização vem depois de conhecer o responsável pela recuperação.

Mantenha o Estado Persistente do Home Assistant e o Recorder em Armazenamento Persistente

A montagem de configuração não é uma cache apenas porque contém alguns ficheiros gerados. Pode conter autenticação, registos de entidades e dispositivos, estado das automatizações, configuração, componentes personalizados e a base de dados predefinida do Recorder. Colocar todo esse caminho em tmpfs transforma um reinício numa perda de dados e faz com que as cópias de segurança dependam de conteúdos na memória que nunca foram concebidos para ser autoritativos.

A explicação da ZimaSpace sobre as funções dos dados persistentes do Home Assistant é o filtro inicial correto: separe o estado autoritativo da cache reconstruível e dos dados temporários de trabalho antes de atribuir níveis de armazenamento.

Utilize um SSD ou outro sistema de ficheiros persistente e fiável para o estado da aplicação e reserve espaço livre suficiente para o crescimento da base de dados, atualizações e manutenção. Mover uma pequena cache descartável para RAM não compensa um volume persistente subdimensionado ou em falha.

Utilize tmpfs Apenas para Caminhos Explicitamente Descartáveis e com um Limite de Memória

O tmpfs pode reduzir as escritas e oferecer uma latência muito baixa, mas consome a RAM do anfitrião e desaparece quando o contentor ou o anfitrião é interrompido. Por isso, é adequado para dados temporários limitados, não para algo necessário após um reinício. A montagem também deve ser dimensionada para que uma carga temporária não consuma a memória necessária ao Home Assistant Core e aos serviços vizinhos.

Um guia atual do Docker Compose explica que a utilização de tmpfs é contabilizada na capacidade de memória e pode falhar com condições de falta de espaço ou OOM quando é sobredimensionada ou não tem limites relativamente ao orçamento do contentor.

Defina um limite máximo, monitorize a utilização de pico e reinicie deliberadamente o contentor. O caminho deve ser preenchido novamente de forma automática, enquanto os utilizadores, as definições, o histórico e as integrações permanecem inalterados. Se a aplicação não conseguir reconstruir o diretório ou tratar a sua ausência como corrupção, devolva-o ao armazenamento persistente.

Trate a Cache do Frontend como um Problema do Cliente, Não como Armazenamento do Servidor

Uma página desatualizada do Home Assistant num navegador pode persistir mesmo quando o servidor está saudável, porque os recursos do frontend são colocados em cache pelo navegador ou pela aplicação. Limpar ficheiros temporários no servidor não corrigirá esse estado do cliente. Do mesmo modo, limpar a cache do navegador não reduz a E/S do disco do Recorder nem torna a base de dados do Home Assistant mais pequena.

Os utilizadores do Home Assistant distinguem explicitamente a cache do frontend como cache do navegador, razão pela qual a resolução de problemas de cache deve começar por identificar se o sintoma existe num único cliente ou em todo o servidor.

Utilize um navegador limpo ou um perfil privado como controlo de validação. Se o novo cliente funcionar corretamente, mantenha a correção no frontend. Se todos os clientes apresentarem os mesmos dados em falta ou o mesmo erro do servidor, não continue a limpar caches locais; volte à resolução de problemas dos registos, do armazenamento, da integração ou da base de dados do Home Assistant.

Valide o Armazenamento Temporário com Testes de Reinício, Pressão e Espaço Livre

Depois de alterar um caminho de cache ou tmpfs, meça o tamanho normal e de pico, a memória disponível no anfitrião, a pressão de memória do contentor, o espaço livre do volume persistente e o comportamento após o reinício. Em seguida, execute a carga de trabalho que cria a cache — TTS, multimédia, processamento de uma integração personalizada ou outro produtor conhecido — e confirme que a limpeza ocorre conforme esperado.

Deixe margem no armazenamento persistente para operações que necessitam de espaço de trabalho temporário, mesmo que a base de dados diária caiba confortavelmente. Não encha o volume persistente porque uma cache em RAM fez com que as escritas normais parecessem menores; as atualizações, a manutenção da base de dados, as cópias de segurança e os picos de registos podem ter requisitos de espaço temporário muito diferentes.

O teste é bem-sucedido quando todos os caminhos descartáveis podem desaparecer e ser reconstruídos, o estado persistente sobrevive ao reinício do contentor e do anfitrião, a utilização de pico do tmpfs permanece dentro do orçamento de memória e o Home Assistant continua a dispor de espaço persistente adequado. Se alguma definição necessária ou algum histórico desaparecer após o teste, o caminho foi classificado incorretamente e deve ser devolvido ao armazenamento persistente antes de continuar a otimização.

Suporte e Dicas

Mais para Ler

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.