Como avaliar a margem de recursos do Home Assistant com uma carga de trabalho repetível

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.

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

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.