Home Assistant heeft geen eenduidig antwoord op de vraag: โhoeveel gelijktijdige taken kan het verwerken?โ Tien korte asynchrone taken kunnen minder belastend zijn dan รฉรฉn integratie die de eventlus blokkeert, terwijl vijftig wachtrijautomatiseringen onschadelijk kunnen blijven als ze het grootste deel van hun tijd wachten op onafhankelijke I/O.
De nuttige limiet ligt op het punt waarop extra werk herhaaldelijk vertraging veroorzaakt in het relevante besturingspad: een gebeurtenis wordt later verwerkt, een automatiseringswachtrij groeit, een serviceaanroep mist het geplande tijdstip, of een gedeelde CPU-, geheugen-, opslag- of netwerkbron raakt overbelast. Gelijktijdigheid is daarom in de eerste plaats een probleem van latentie en wachtrijen, en pas daarna van het aantal taken.
Gelijktijdigheid in Home Assistant begint bij de asyncio-eventlus
Home Assistant Core is gebouwd rond Python asyncio. Componenten plannen werk als taken en coรถperatieve asynchrone code geeft de uitvoering vrij terwijl deze op I/O wacht, zodat ander werk kan doorgaan in plaats van voor elke integratie een aparte thread van het besturingssysteem te reserveren.
De huidige ontwikkelaarsdocumentatie van Home Assistant legt uit dat Core componenttaken via een centrale eventlus plant en erop vertrouwt dat taken netjes pauzeren terwijl ze wachten. Daarom betekent โgelijktijdigโ niet dat elke taak op exact hetzelfde moment CPU-instructies uitvoert.
Een praktische analyse van gelijktijdigheid maakt hetzelfde onderscheid: asynchrone taken kunnen elkaar in verstreken tijd overlappen, terwijl de daadwerkelijke uitvoering in de eventlus tussen await-punten geserialiseerd blijft. De capaciteit hangt af van hoe lang elke taak de lus bezet en waarop deze wacht.
Blokkerend werk kan veel taken tegelijk vertragen
De schadelijkste fout met betrekking tot gelijktijdigheid is vaak niet โte veel automatiseringenโ. Het is รฉรฉn bewerking die de eventlus lang genoeg blokkeert, waardoor niet-gerelateerde statusupdates en callbacks niet kunnen worden uitgevoerd.
Home Assistant waarschuwt uitdrukkelijk dat blokkerende bewerkingen in de eventlus het volledige systeem stilleggen zolang de aanroep duurt. Dit omvat slecht afgehandelde bestands-I/O, netwerkbibliotheken, slaapfuncties of zwaar synchroon werk binnen een integratie.
Dat verandert de manier waarop een capaciteitstest moet worden geรฏnterpreteerd. Als de latentie van lokale besturing toeneemt wanneer รฉรฉn specifieke integratie actief is, terwijl het totale CPU-gebruik laag blijft, kan het probleem nog steeds een geblokkeerde eventlus zijn en niet onvoldoende process capaciteit.
De automatiseringsmodus bepaalt hoe herhaalde triggers werk worden
Automatiseringen voegen nog een laag beleid voor gelijktijdigheid toe. Een regel kan een tweede trigger weigeren, de huidige uitvoering opnieuw starten, werk in een wachtrij plaatsen of parallelle uitvoeringen creรซren. Die keuzes beรฏnvloeden zowel de correctheid als de benodigde resources.
De huidige documentatie over automatiseringsmodi van Home Assistant definieert de modi single, restart, queued en parallel, met configureerbare maxima voor uitvoeringen in de wachtrij of parallelle uitvoeringen. Het standaardmaximum voor de modi queued en parallel is 10, maar deze configuratiewaarde is geen platformbrede capaciteitsbeoordeling.
Een automatisering voor een deursensor die twee seconden wacht voordat deze een melding verstuurt en een verlichtingsautomatisering die vijf netwerkoproepen uitvoert, zijn geen gelijkwaardige taken. Kies de automatiseringsmodus eerst op basis van volgorde en correctheid en controleer daarna of de resulterende wachtrij of overlap invloed heeft op de latentie van de besturing.
Meet groei van wachtrijen en staartlatentie, niet alleen het CPU-percentage
Gebruik รฉรฉn kritieke lokale automatisering als latentieproef. Leg het moment vast waarop de trigger binnenkomt, de automatisering start, de serviceaanroep wordt uitgevoerd en het fysieke apparaat reageert, terwijl je slechts รฉรฉn variabele voor gelijktijdigheid tegelijk verhoogt: herhaalde triggers, dashboardclients, achtergrondintegraties of aangrenzende services.
Het ZimaSpace-artikel over gebeurtenisgestuurd werk en de belasting van een inactieve server biedt de juiste basis: gebeurtenisgestuurde systemen zijn efficiรซnt wanneer werk alleen wordt geactiveerd wanneer dat nodig is, maar pieken hebben nog steeds voldoende planningsruimte en reservecapaciteit nodig om zonder aanhoudende wachtrijen te worden verwerkt.
Let op de mediane latentie en de traagste normale uitvoeringen. Een systeem kan gemiddeld 10% CPU gebruiken terwijl korte pieken vertragingen van รฉรฉn seconde veroorzaken. De nuttige capaciteitsgrens wordt zichtbaar wanneer wachtrijen blijven groeien, waarschuwingen over het maximumaantal uitvoeringen herhaaldelijk verschijnen of de staartlatentie na afloop van de piek niet meer terugkeert naar de basiswaarde.
Scheid gelijktijdigheid in Home Assistant van belasting op de host
Home Assistant kan taken correct plannen terwijl een andere container de CPU, het geheugen, de opslag of het netwerk verzadigt. In dat geval verandert het verhogen of verlagen van de automatiseringswaarde max mogelijk niets aan de fout, omdat de gedeelde host al geen reservecapaciteit meer heeft.
Herhaal de test op gelijktijdigheid eenmaal terwijl de aangrenzende werklast is gepauzeerd. Als de timing van de eventlus en de latentie van lokale besturing onmiddellijk herstellen, behandel de limiet dan als een capaciteitsprobleem van de gedeelde host. Als dat niet gebeurt, onderzoek dan blokkerende bewerkingen, het gedrag van integraties of het ontwerp van automatiseringswachtrijen binnen Home Assistant.
Gebruik een stopcriterium in plaats van een aantal taken te publiceren
| Waargenomen signaal | Betekenis | Volgende test |
|---|---|---|
| Parallelle uitvoeringen of uitvoeringen in de wachtrij bereiken het geconfigureerde maximum | Limiet van de automatiseringswachtrij | Controleer de modus, volgorde en triggersnelheid |
| Waarschuwing over de eventlus of brede vertraging in de interface en besturing | Mogelijk blokkerend werk | Identificeer de integratie of synchrone aanroep |
| De latentie neemt alleen toe wanneer een andere service actief is | Belasting op de gedeelde host | Meet CPU-, geheugen-, I/O- en netwerkbelasting |
| รรฉn apparaatpad is traag terwijl andere snel blijven | Limiet die specifiek is voor een afhankelijkheid | Onderzoek dat integratie- of netwerkpad |
| Wachtrijen lopen leeg en de staartlatentie blijft binnen het doel | Er is nog nuttige marge voor gelijktijdigheid | Stop met het toevoegen van belasting bij de geplande piek |
De capaciteit van Home Assistant moet daarom worden beschreven als een geteste werklast met een latentiedoel, niet als een universeel aantal gelijktijdige taken. De juiste vraag is hoeveel overlappend werk de huidige mix van integraties en de host kan verwerken voordat het kritieke pad voor lokale besturing niet langer aan de deadline voldoet.
Tech & AI HUB
Meer om te lezen

Kunnen thuiscamera's gebeurtenissen synchroniseren zonder cloudtijdservices?
Een mechanismegerichte uitleg van cameratiijd zonder cloud, de afwegingen bij gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

Kan een lokale AI-service beschadigde modellagen detecteren vรณรณr de inferentie?
Een mechanismegerichte uitleg van detectie van beschadigingen in modellagen, de afwegingen rond gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

Kan een RAG-systeem worden hersteld zonder elke embedding opnieuw te genereren?
Een mechanismegerichte uitleg van RAG-herstel zonder opnieuw te embedden, de afwegingen rond gedeelde bronnen, drie veelgestelde vragen over query-fan-out en een praktisch verificatieprotocol.

