Otimize as ligações à base de dados do Home Assistant distribuindo o total por todos os contentores, em vez de maximizar um único conjunto de ligações. Reserve espaço para a administração da base de dados e para tarefas em segundo plano e, em seguida, valide o Recorder durante o arranque simultâneo e o período normal de escrita mais intenso.
Num anfitrião MariaDB ou PostgreSQL partilhado, o número importante é a soma das ligações possíveis de cada serviço multiplicada pelo número de instâncias em execução, acrescida do acesso para manutenção e emergência. Meça em conjunto as ligações ativas, inativas, em espera e falhadas, bem como a latência das consultas e a carga do armazenamento. Se utilizar SQLite, pare aqui: mover mais contentores para o mesmo ficheiro de base de dados não é afinação do conjunto de ligações.
Confirme a topologia da base de dados e a procura atual de ligações
Documente o motor e a versão da base de dados, o URL do Recorder do Home Assistant, todos os outros contentores clientes, o número de réplicas, o conjunto de ligações configurado, os tempos limite, o comportamento de repetição e a política de reinício. Confirme que cada serviço tem o seu próprio utilizador da base de dados, para que as sessões ativas possam ser atribuídas corretamente.
Meça o número máximo de ligações da base de dados, as sessões atuais por utilizador e estado, o pico de sessões durante o arranque e a carga normal, as esperas, a latência das consultas, o CPU, a memória e a latência do armazenamento. Um número elevado de ligações pode ser sintoma de trabalho lento, e não a causa; adicionar mais sessões a um disco saturado normalmente aumenta a contenção.
Utilize o guia da ZimaSpace sobre a fiabilidade de bases de dados externas do Home Assistant para verificar as cópias de segurança, as permissões do esquema, o suporte do motor e os limites das atualizações antes de ajustar a simultaneidade.
Crie um orçamento de ligações para todos os contentores
Reserve ligações para a administração da base de dados, monitorização, migrações, cópias de segurança e tarefas internas do motor. Divida o orçamento restante das aplicações pelos serviços de acordo com o trabalho concorrente medido, e não com base na RAM instalada ou num valor de ligações máximas copiado.
As orientações sobre conjuntos de ligações para serviços com várias instâncias tornam explícita a aritmética fundamental: a base de dados tem de suportar o tamanho do conjunto multiplicado pelo número de instâncias. O conceito aplica-se de forma geral, embora cada versão do Home Assistant e da base de dados continue a exigir as suas próprias definições suportadas.
Comece com conjuntos e filas limitados. Se a procura exceder temporariamente o conjunto, esperar pode ser mais seguro do que abrir sessões ilimitadas; se o tempo de espera se tornar percetível para o utilizador, investigue a latência das consultas e do armazenamento antes de aumentar o conjunto. Mantenha tempos limite explícitos para as ligações e para a aquisição, para que as falhas sejam comunicadas em vez de ficarem bloqueadas indefinidamente.
Controle os reinícios, as repetições e as ligações inativas
Distribua o arranque dos contentores ao longo do tempo, para que o Home Assistant, os painéis, as análises, as cópias de segurança e os importadores não restabeleçam as ligações nem executem migrações todos ao mesmo tempo. Utilize verificações de estado que testem a disponibilidade real da base de dados, mas evite ciclos de repetição apertados que criem uma tempestade de ligações enquanto a base de dados recupera.
Defina o tempo de vida das ligações inativas e o comportamento de reciclagem tendo em conta os tempos limite da base de dados, do controlador, do proxy e da rede. Um conjunto que mantenha sessões terminadas durante demasiado tempo provoca erros; um conjunto que renove as ligações de forma demasiado agressiva acrescenta custos de autenticação e configuração. Altere uma camada de tempo limite de cada vez.
Se introduzir um proxy de ligações, verifique a semântica das transações, as migrações, as instruções preparadas e a compatibilidade com o Home Assistant num ambiente de teste. Um proxy não substitui o diagnóstico de consultas lentas, bloqueios, memória ou armazenamento.
Reduza o trabalho da base de dados antes de aumentar a simultaneidade
Analise a retenção do Recorder, as entidades de alta frequência excluídas, o comportamento da limpeza, o tamanho da base de dados e as consultas lentas. Se uma consulta do Home Assistant mantiver uma ligação ocupada durante muito tempo, reduzir dados desnecessários ou corrigir a latência do armazenamento pode melhorar o débito de forma mais segura do que adicionar sessões.
Separe as análises pesadas ou as métricas de longo prazo do Recorder apenas quando o novo fluxo tiver um modelo claro de responsabilidade e retenção. Não aponte contentores não relacionados para o esquema do Home Assistant nem permita que escrevam nas tabelas do Recorder; utilize APIs suportadas ou bases de dados independentes.
Volte a verificar a memória por ligação, a configuração dos buffers, as esperas por bloqueios e a latência do armazenamento antes de aumentar o limite do servidor da base de dados. O servidor tem de continuar responsivo no pico planeado, mantendo capacidade suficiente para recuperação e administração.
Valide durante o arranque simultâneo e o pico de carga do Recorder
Reinicie a base de dados e os contentores clientes pela ordem planeada e, em seguida, repita com a sobreposição segura mais intensa: arranque do Home Assistant, consultas ao histórico, importações, cópias de segurança e o pico de outro serviço. Observe o número de ligações, a espera pela aquisição, as falhas, a latência das consultas, os bloqueios e a atividade de E/S do anfitrião.
Uma configuração aprovada mantém o controlo e o histórico do Home Assistant responsivos, permanece dentro do orçamento de ligações, preserva o acesso administrativo e esvazia as filas temporárias após o pico. Reinicie duas vezes e observe a próxima janela de manutenção agendada para confirmar a persistência.
Reverta as alterações se os tempos limite, os erros de excesso de ligações, a pressão sobre a memória da base de dados ou o atraso do Recorder piorarem. Ao pedir ajuda, forneça a topologia, as contagens de sessões por utilizador, as definições dos conjuntos, as evidências de consultas lentas e as métricas do armazenamento, em vez de um único número de ligações máximas.
Suporte e Dicas
Mais para Ler

Como evitar tarefas ou importações duplicadas no Home Assistant
Utilize rastreios e chaves de operação exclusivas para tornar as automatizações e importações seguras para repetir, sem gerar ações ou registos duplicados.

Como reparar o Home Assistant depois de o volume da base de dados ficar cheio
Recupere de um volume do Recorder cheio sem eliminar primeiro as evidências e, em seguida, reduza o crescimento e comprove que o histórico e...

Porque é que o Home Assistant recria ficheiros em falta com o proprietário errado?
Faça corresponder o UID e o GID de execução ao caminho do anfitrião, repare apenas os ficheiros afetados enquanto estiver parado e verifique a...

