Hur mycket CPU-kapacitet bör du reservera för toppar i Home Assistant?

Eva Wong är Teknisk skribent och den boende fixaren på ZimaSpace. En livslång nörd med en passion för hemma-labb och öppen källkod, hon specialiserar sig på att översätta komplexa tekniska koncept till tillgängliga, praktiska guider. Eva tror att självhosting ska vara roligt, inte skrämmande. Genom sina handledningar ger hon gemenskapen verktyg att avmystifiera hårdvaruinstallationer, från att bygga sin första NAS till att bemästra Docker-containrar.

Reservera tillräcklig CPU-marginal för den värsta upprepningsbara arbetsbelastningen för att uppfylla målen för händelse-till-åtgärd och omstart; det finns ingen försvarbar universell procentsats för varje Home Assistant-stack.

En värd med fyra kärnor kan visa ett måttligt genomsnitt samtidigt som en kärna är överbelastad, eller verka CPU-begränsad när lagringsväntan, minnestryck eller termisk strypning egentligen är den verkliga begränsningen. Definiera den mest belastade realistiska överlappningen, mät styrfördröjning och beteende per kärna och behåll sedan den minsta resursmarginal som klarar upprepade tester utan att normala kompletterande tjänster behöver stoppas.

Definiera toppen och den användarsynliga gränsen

Bygg en arbetsbelastning som kombinerar den mest intensiva normala automationssatsen med användning av instrumentpanelen och planerade bakgrundsjobb som säkerhetskopiering, databasunderhåll, röstfunktioner eller utvald kamerabearbetning. Definiera acceptabel fördröjning från händelse till åtgärd, svarstid för instrumentpanelen och beredskap efter omstart innan du mäter resursutnyttjandet.

Använd inte ett artificiellt stresstest för alla kärnor som den enda toppen. Det mäter maskinvarans kapacitet, men inte den överlappning mellan schemaläggning, databas, integrationer och tillägg som användarna faktiskt upplever.

En giltig baslinje körs tre gånger med samma antal enheter, integrationer, databasläge och närliggande tjänster. Om arbetsbelastningen inte kan upprepas är ingen procentsats som härleds från den en tillförlitlig reserv.

Samla även in en körning under en lugn period som kontroll. Skillnaden mellan lugna och maximala tillstånd visar hur känslig arbetsbelastningen är; den maximala procentsatsen ensam kan inte visa om systemet startade nära mättnad.

Läs av mättnad per kärna och väntetid separat

Registrera resursutnyttjande per kärna, belastning, stjälptid för virtuella maskiner, I/O-väntan, frekvens, temperatur och Home Assistant-processen tillsammans med den användarsynliga fördröjningen. Synkronisera alla mätningar till samma tidsstämplar.

Eftersom en överbelastad kärna kan döljas bakom ett betydligt lägre genomsnitt för hela systemet bör du testa processens belastningsmönster i stället för att anta att det totala utnyttjandet visar den användbara marginalen.

Om en kärna når full belastning samtidigt som fördröjningen ökar tyder det på begränsad kapacitet för enkeltrådad CPU-bearbetning eller blockerande arbete. Om I/O-väntan ökar först bör du åtgärda lagring eller databasbeteende. Om frekvensen sjunker när temperaturen stiger bör du förbättra kylningen innan du reserverar mer nominell kapacitet.

Skapa marginal med schemaläggning och isolering

Flytta valfria jobb från det mest belastade styrfönstret, begränsa bullriga kompletterande containrar och förhindra att kamera-, AI- eller medieuppgifter förbrukar varje körbar kärna. Se till att Home Assistant och nödvändiga meddelandeförmedlare fortfarande kan göra framsteg under dessa toppar.

Jämför processorers arbetsbelastningsdrivna CPU-marginal först efter att den nuvarande systembegränsningen har mätts. Ett snabbare köp löser inte obegränsade jobb eller lagringsväntan.

Testa igen efter varje ändring av schemaläggning eller begränsningar. Om fördröjningen klarar målen utan maskinvaruändring är den återvunna marginalen operativ marginal; om samma kärna fortfarande är överbelastad bör du jämföra en kraftfullare CPU endast mot den identiska arbetsbelastningen.

-15% OFF
Single board computer zimaboard2

Fastställ reserven utifrån upprepade godkända körningar

Använd den högsta observerade toppen från rena, upprepade körningar och behåll sedan ytterligare kapacitet för förväntad tillväxt av integrationer samt en överlappning med underhåll. Uttryck resultatet som ett testat tjänsteintervall, inte som ett universellt mål för låg belastning.

Proceduren i benchmarktestet av resursmarginal ger en gemensam baslinje för CPU, minne, lagring och nätverk.

Testet är godkänt när den ursprungliga toppen uppfyller målen för fördröjning och omstart i på varandra följande körningar utan termisk strypning eller tvingade tjänstestopp. Eskalera eller uppgradera när samma CPU-specifika mättnad kvarstår efter att orsaker inom schemaläggning, integrationer och I/O har uteslutits.

Support och tips

Mer att läsa

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.