Ilu jednoczesnych użytkowników może obsłużyć Home Assistant, zanim zacznie działać wolniej?

Eva Wong jest Technicznym pisarzem i stałym majsterkowiczem w ZimaSpace. Całe życie geek z pasją do homelabów i oprogramowania open-source, specjalizuje się w tłumaczeniu skomplikowanych koncepcji technicznych na przystępne, praktyczne przewodniki. Eva wierzy, że samodzielne hostowanie powinno być zabawą, a nie czymś onieśmielającym. Poprzez swoje samouczki umożliwia społeczności rozwiewanie tajemnic konfiguracji sprzętu, od budowy pierwszego NAS po opanowanie kontenerów Docker.

Home Assistant nie ma użytecznej, uniwersalnej odpowiedzi w rodzaju „20 użytkowników” czy „100 użytkowników”. Zalogowane konto pozostające bezczynnie generuje inne obciążenie niż tablet ścienny renderujący złożony pulpit, telefon otwierający historię czy kilku użytkowników obserwujących kafelki kamer, podczas gdy aktualizują się tysiące encji.

Określ rozmiar obsługi równoczesnej, mierząc liczbę połączonych klientów oraz obciążenie generowane przez każdego z nich. Praktyczny limit to moment, w którym używane przez Ciebie reprezentatywne pulpity, aktualizacje WebSocket, działania serwera i ścieżka sieciowa zaczynają przekraczać akceptowalny czas odpowiedzi.

Liczy się liczba połączonych klientów, nie tylko kont użytkowników

Utworzenie 100 kont nie oznacza 100 jednoczesnych sesji. Z drugiej strony jedna osoba może mieć jednocześnie podłączoną przeglądarkę, telefon, tablet i kiosk.

Integracja WebSocket Home Assistant może udostępniać sensor.connected_clients jako bieżącą liczbę połączonych klientów WebSocket. Użyj tej liczby jako wskaźnika równoczesnego obciążenia podczas odtwarzania danego scenariusza.

Rejestruj liczbę klientów razem z użyciem procesora serwera, presją pamięci, przepustowością sieci i opóźnieniem działań. Sama liczba połączeń, bez informacji o generowanym przez nie obciążeniu, nie jest wynikiem testu wydajności.

Koszt działania interfejsu zależy od aktualizacji stanu i pracy pulpitu

Interfejs nawiązuje połączenie WebSocket i synchronizuje stan Home Assistant z przeglądarką. Każdy klient musi również renderować otwierany pulpit, dlatego sprzęt kliencki i niestandardowe kafelki mogą stać się ograniczeniem, zanim ograniczeniem stanie się serwer.

Aktualna architektura interfejsu opisuje, jak interfejs otrzymuje podstawowy stan i dodatkowe subskrypcje za pośrednictwem API WebSocket. Zajęta instalacja generuje więc ciągłą pracę związaną z aktualizacjami także po początkowym załadowaniu strony.

Testuj rzeczywisty zestaw pulpitów używanych przez domowników, zamiast otwierać pustą stronę testową na każdym kliencie.

Wysoka częstotliwość aktualizacji encji może przeciążyć klientów, zanim liczba użytkowników stanie się duża

System z tysiącami często zmieniających się czujników może generować znacznie więcej pracy interfejsu niż większa liczba użytkowników obserwujących w większości statyczne encje. Jest to szczególnie widoczne na starszych tabletach i energooszczędnych panelach ściennych.

W zgłoszeniu Home Assistant opisano przypadek, w którym duża liczba aktualizacji encji przeciążyła klientów korzystających z pulpitów, mimo że sam widoczny pulpit był prosty.

Nie wyznacza to uniwersalnego progu, ale pokazuje, dlaczego „użytkownicy” to niewłaściwa pojedyncza jednostka miary. Oprócz liczby połączeń mierz liczbę aktualizacji na sekundę i responsywność klientów.

Nie opublikowano maksymalnej liczby użytkowników dla wdrożeń domowych

Pytania społeczności dotyczące nietypowo dużych wdrożeń pokazują tę niepewność. W dyskusji o około 200 użytkownikach nie znaleziono jasno określonego, obsługiwanego maksimum, a taką skalę uznano za nietypowy przypadek, który należy przetestować, zamiast zakładać jego obsługę.

W typowym gospodarstwie domowym oznacza to, że nie musisz szukać maksymalnej liczby sesji podawanej przez producenta. W przypadku obiektu społecznościowego, współdzielonego budynku, laboratorium lub innego wdrożenia z dużą liczbą użytkowników Home Assistant może nie być właściwą platformą do zarządzania tożsamością i dostępem, nawet jeśli serwer jest technicznie w stanie utrzymać te połączenia.

Metoda doboru rozmiaru na podstawie równoczesnego obciążenia ZimaSpace ma tu zastosowanie: wydajność należy odnosić do najbardziej intensywnego realistycznego nakładania się obciążeń, a nie do łącznej liczby zarejestrowanych kont.

Przeprowadź test stopniowy, aż jedna metryka zacznie powtarzalnie wskazywać awarię

Etap Pomiar Warunek zatrzymania
Dodawaj aktywnych klientów małymi grupami Połączeni klienci Osiągnięto reprezentatywną liczbę jednoczesnych połączeń
Otwórz rzeczywiste pulpity Początkowe renderowanie i opóźnienie interakcji Powtarzalne opóźnienia odczuwalne przez użytkownika
Wygeneruj normalny ruch encji Obciążenie WebSocket i aktualizacjami Klienci nie nadążają
Uruchom typowe działania Opóźnienie od działania serwera do urządzenia Opóźnienie sterowania wyraźnie rośnie
Powtórz test przy szczytowym obciążeniu Obciążenie procesora, pamięci, sieci i klientów Ponownie pojawia się ta sama warstwa ograniczająca

Ustal pojemność o jeden etap poniżej pierwszego powtarzalnego punktu awarii i pozostaw zapas na kopie zapasowe, aktualizacje, ruch z kamer oraz nietypowe skoki obciążenia. Jeśli zwalnia tylko jeden stary tablet, a działania serwera pozostają szybkie, wymiana serwera może nie zwiększyć użytecznej liczby jednoczesnych klientów.

FAQ

Czy 20 kont użytkowników Home Assistant oznacza 20 użytkowników jednocześnie?

Nie. Konta określają tożsamości, a równoczesność oznacza aktywne połączenia klientów i obciążenie generowane przez te połączenia. Jeden użytkownik może mieć kilka klientów, podczas gdy wiele kont może pozostawać całkowicie bezczynnych.

Czy prostsze pulpity zawsze pozwolą na połączenie większej liczby użytkowników?

Mogą zmniejszyć obciążenie związane z renderowaniem po stronie klienta, ale wydajność serwera zależy również od częstotliwości aktualizacji encji, ruchu WebSocket, zapytań do historii, kamer, ścieżki sieciowej i usług działających w tle. Zmierz pełne obciążenie.

Wsparcie i wskazówki

Więcej do przeczytania

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.