Um teste de desempenho do Home Assistant só é útil quando reproduz a mesma carga de trabalho e define o que significa “suficientemente rápido” antes de consultar os gráficos de recursos. Caso contrário, os valores de CPU, memória, armazenamento e rede tornam-se observações sem uma conclusão sobre a capacidade.
Isto é diferente de diagnosticar uma instalação lenta. Um teste de desempenho cria deliberadamente uma linha de base repetível, aumenta uma dimensão da carga de trabalho e identifica quanta margem de recursos permanece antes de uma automação escolhida, consulta do histórico ou resposta do painel sair do seu intervalo de latência aceitável.
Defina uma Carga de Trabalho e um Limiar de Aceitação
Escolha uma carga de trabalho que represente um pico real numa casa: por exemplo, uma automação local acionada por movimento, três painéis ativos, gravações normais do Recorder, um período de fundo sem cópias de segurança e um conjunto fixo de integrações. Registe a versão do Home Assistant, o hardware anfitrião, o armazenamento, a base de dados, o cliente, o percurso de rede e a duração do teste.
A vista de Informações do sistema do Home Assistant apresenta o contexto da instalação, da rede, das integrações e dos recursos, que deve ser registado juntamente com um resultado de desempenho. Sem detalhes sobre o ambiente, o tempo de resposta de uma pessoa não pode ser comparado de forma significativa com o de outra máquina.
Defina depois o limiar de aceitação. Uma automação de iluminação pode exigir uma resposta física inferior a um segundo, enquanto uma consulta do Histórico de cinco anos pode ser aceitável em vários segundos. Não combine ambas numa pontuação genérica de “velocidade do Home Assistant”.
Utilize Utilização, Saturação e Erros para Cada Recurso Partilhado
A utilização média, por si só, é um critério de paragem fraco. Um disco pode estar ocupado mas saudável, ou uma CPU pode apresentar uma utilização média moderada enquanto breves picos criam uma fila que os utilizadores sentem como latência.
O Método USE avalia a utilização, a saturação e os erros de cada recurso físico ou limitado. Aplique esse modelo à CPU, à capacidade de memória, à E/S de armazenamento e às interfaces de rede, em vez de escolher o gráfico com a maior utilização.
No Home Assistant em contentores, inclua também os limites cgroup como recursos. Um anfitrião com 60% de CPU livre pode ainda limitar um contentor que tenha atingido a quota atribuída.
As Métricas de Pressão Mostram o Tempo Perdido por Escassez de Recursos
O Pressure Stall Information do Linux acrescenta uma perspetiva orientada para a latência. Em vez de perguntar apenas quanta CPU, memória ou E/S é utilizada, o PSI mede a fração de tempo durante a qual as tarefas ficam bloqueadas porque um recurso está em contenção.
A documentação do kernel Linux explica que a pressão da CPU, da memória e da E/S pode ser medida como tempo real perdido devido à contenção, incluindo picos breves que prejudicam a latência antes de a utilização média parecer extrema.
Isto torna o PSI útil num servidor doméstico partilhado. Se a latência do Home Assistant piorar quando a pressão de E/S aumenta durante um pico de escrita de outro contentor, terá evidências mais sólidas de contenção no armazenamento partilhado do que “o SSD estava 70% ocupado”.
Aumente Apenas uma Dimensão da Carga de Trabalho por Execução
Não adicione simultaneamente utilizadores de painéis, acionadores de automações, streams de câmaras, retenção e tráfego de cópias de segurança. Aumente uma variável enquanto todas as outras condições permanecem fixas.
Os testes progressivos úteis incluem mais eventos de automação por minuto, mais painéis simultâneos, intervalos de Histórico maiores, mais atualizações de entidades ou uma carga definida de um serviço vizinho. Após cada etapa, aguarde o tempo suficiente para o sistema atingir um comportamento estável, em vez de recolher apenas os primeiros dez segundos de uma cache aquecida ou de um pico de arranque.
A análise da ZimaSpace sobre a contenção de filas de armazenamento partilhado e a latência de cauda mostra por que motivo a carga de trabalho tem de ser associada ao percurso do recurso: o armazenamento só importa quando a ação testada depende diretamente dele ou partilha a mesma fila de E/S.
Altere um Recurso e Exija que o Resultado se Altere
Um teste de desempenho torna-se diagnóstico quando uma alteração controlada num recurso desloca a curva de latência. Afaste um serviço vizinho pesado da CPU do Home Assistant, pause uma tarefa com muitas escritas, aumente o limite de memória cgroup testado, utilize um percurso LAN direto ou mova os dados das aplicações para um armazenamento com menor latência.
Se o limiar de latência original melhorar na mesma etapa da carga de trabalho, é plausível que o recurso estivesse a limitar a margem disponível. Se nada mudar, reverta a experiência e teste o candidato seguinte, em vez de transformar a alteração numa configuração permanente.
Publique o Resultado como um Envelope de Capacidade
| Dimensão da carga de trabalho | Medir com | Parar quando |
|---|---|---|
| Taxa de automações/eventos | Latência de cauda entre o acionamento e a ação | A latência ou as filas crescem persistentemente |
| Clientes dos painéis | Resposta do servidor + renderização no cliente | O atraso de interação repetido excede o objetivo |
| Carga do Recorder/histórico | Latência das consultas + pressão do armazenamento | A pressão de E/S ou a cauda das consultas aumenta acentuadamente |
| Carga do anfitrião partilhado | PSI / cgroup / utilização | A latência do Home Assistant varia com a contenção |
| Percurso de rede | RTT, perda, DNS, tempo de resposta | O percurso remoto deixa de cumprir o objetivo definido |
O resultado final deve ser formulado assim: “este hardware, esta base de dados, esta combinação de clientes e esta carga de trabalho em segundo plano mantêm o percurso de controlo escolhido dentro do objetivo até à etapa N”. Essa afirmação é reproduzível. “O Home Assistant utiliza apenas 20% da CPU” não é.
Centro de Tecnologia e IA
Mais para Ler

As câmaras domésticas conseguem sincronizar eventos sem serviços de hora na nuvem?
Uma explicação baseada primeiro no mecanismo do tempo da câmara sem cloud, as suas contrapartidas na partilha de recursos, três perguntas frequentes sobre a...

Um serviço de IA local consegue detetar camadas de modelos corrompidas antes da inferência?
Uma explicação baseada primeiro no mecanismo da deteção de corrupção na camada do modelo, dos seus compromissos em termos de recursos partilhados, de três...

É possível restaurar um sistema RAG sem regenerar todos os embeddings?
Uma explicação, centrada no mecanismo, do restauro de RAG sem re-embedding, das suas contrapartidas em recursos partilhados, de três perguntas frequentes sobre a expansão...

