Varför orsakar Home Assistant upprepad diskaktivitet under natten?

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.

Återkommande diskaktivitet i Home Assistant under natten beror vanligtvis på schemalagt arbete, inte på att lagringsenheten eller Recorder fungerar fel.

Den snabbaste felsökningen är att jämföra den period då aktiviteten är hög med tidsstämplar från Home Assistant, tillägg, databasen och värdsystemet innan du ändrar lagringstid eller flyttar databasen. Underhåll av Recorder, automatiska säkerhetskopior, loggrotation, skrivningar från kameror eller tillägg och säkerhetskopieringsjobb på värdnivå kan alla skapa liknande toppar. Se först händelsen som ett tidsproblem: identifiera vilken process som skriver, hur länge det pågår och om samma arbetsbelastning slutförs korrekt varje natt.

Koppla diskaktiviteten till ett schemalagt jobb innan du justerar något

Börja med ett entimmesfönster runt den återkommande aktiviteten och registrera diskfördröjning, skrivhastighet, I/O per process eller container samt exakta start- och stopptider. Ett mönster som börjar nästan samma minut varje natt tyder starkt på schemalagt underhåll; ett mönster som varierar med hushållets aktivitet beror troligare på en integration, kamera eller enhet.

Home Assistant Recorder utför regelbundet arbete med lagringstiden, och observationer från communityn visar att databasrensningen körs tidigt på morgonen medan långtidsstatistik fortsätter enligt ett eget schema. Därför är tidpunkten för Recorder-rensningen en bra första jämförelse när disken aktiveras vid samma tid varje natt.

Sänk inte lagringstiden, inaktivera historik och flytta inte databasen bara för att enheten är aktiv. Bevisa först att Recorder är den process som skriver. Om aktiviteten börjar före eller efter databasjobbet ska du jämföra scheman för säkerhetskopiering, Docker- eller tilläggsloggar, filsystemsbilder, NAS-replikering, virussökning och eventuella medie- eller kameratjänster som delar samma disk.

De fyra vanligaste orsakerna har olika I/O-signaturer

De främsta kandidaterna är underhåll av Recorder, automatiska säkerhetskopior, skrivintensiva integrationer eller tillägg samt lagringsjobb på värdnivå. De kan överlappa, så den användbara informationen är inte bara att ”disken är upptagen”, utan om det är databasfilen, säkerhetskopieringsmålet, loggsökvägen eller en annan container som äger skrivningarna under samma intervall.

Home Assistants automatiska säkerhetskopieringssystem använde ursprungligen ett schema tidigt på morgonen och fick senare stöd för användarkonfigurerade tider. Därför kan säkerhetskopieringen naturligt sammanfalla med databasunderhåll. Versionshistoriken kring tidpunkten för automatiska säkerhetskopior påminner om att kontrollera det konfigurerade säkerhetskopieringsfönstret i stället för att anta att all nattlig I/O kommer från Recorder.

Använd signaturerna nedan som hypoteser och ändra bara ett schema åt gången. En orsak är bekräftad när en ändring eller inaktivering av det enskilda jobbet flyttar diskaktiviteten samtidigt som den andra Home Assistant-arbetsbelastningen förblir oförändrad.

Orsak 1: Rensning eller ompackning av Recorder

  • Signatur: databasintensiva skrivningar vid en förutsägbar tid tidigt på morgonen.
  • Kontrollera: jämför Recorder-loggar, databasstorlek och lagringsfördröjning under perioden.
  • OM–SÅ: om aktiviteten följer tidpunkten för rensning eller ompackning och avslutas korrekt är det schemalagt underhåll, inte en oförklarlig loop.

Orsak 2: Automatiska säkerhetskopior eller säkerhetskopior från tillägg

  • Signatur: läsningar från appdata samt stora sekventiella skrivningar till lokal lagring, USB-lagring eller nätverkslagring.
  • Kontrollera: jämför starttiden för säkerhetskopieringen med genomströmningen till målet.
  • OM–SÅ: om en ändring av säkerhetskopieringsschemat flyttar diskaktiviteten ska du behålla säkerhetskopieringen och flytta dess tidsfönster i stället för att begränsa databasskrivningar.

Orsak 3: Loggning, kameror eller skrivintensiva integrationer

  • Signatur: kontinuerliga eller upprepade små skrivningar som följer händelser från entiteter snarare än ett enda underhållsfönster.
  • Kontrollera: identifiera entiteter som ändras ofta, felsökningsloggning, kameraklipp och databaser från tillägg.
  • OM–SÅ: om skrivningarna fortsätter när schemalagda jobb inte körs ska du minska den specifika producentens aktivitet i stället för att begränsa Recorder globalt.

Orsak 4: Ett annat jobb på värdsystemet delar disken

  • Signatur: Home Assistants fördröjning ökar samtidigt som en annan container, ögonblicksbild, scrub- eller replikeringsprocess använder I/O.
  • Kontrollera: undersök I/O-fördelningen på värdnivå, inte bara Home Assistant-loggar.
  • OM–SÅ: om den nattliga konkurrensen försvinner när det närliggande jobbet flyttas var Home Assistant den drabbade parten, inte källan.

Skilj normalt underhåll från onormalt skrivtryck

En hälsosam schemalagd aktivitet startar, utför ett avgränsat arbete och återgår till normal nivå utan databasfel eller ökande fördröjning efteråt. Varningstecken är ett aktivitetsfönster som blir längre natt efter natt, upprepade databasfel eller låsningsfel, ett fullt filsystem eller ett jobb som aldrig når ett stabilt avslut.

Ett optimeringsfall för Recorder visar hur minskning av onödigt inspelat tillstånd kan minska databasens tillväxt och därmed framtida underhålls- och säkerhetskopieringsarbete. Använd den typen av minskning av inspelningsvolymen först när bevisen visar att Recorder-volymen faktiskt är problemet, inte som en reflex på grund av att diskens aktivitetslampa lyser.

Gränsen för när ett fel föreligger går vid synlig påverkan för användaren eller brist på tidsmarginal för att slutföra arbetet. Om nattjobbet avslutas innan hushållets aktiva period och lagringsfördröjningen förblir låg är aktiviteten i sig inget fel. Om underhållet överlappar morgonens automatiseringar, säkerhetskopior upprepade gånger misslyckas eller databasen närmar sig gränsen för ledigt utrymme bör du ändra lagringstid, schema, lagring eller separera arbetsbelastningar.

Gör ett isoleringstest under en natt och validera det ursprungliga tidsfönstret

Behåll den normala Home Assistant-konfigurationen och flytta bara ett misstänkt jobb till en annan tid. Registrera skrivhastighet till disken, I/O-väntetid, databasaktivitet och skrivande processer på containernivå under båda nätterna. Inaktivera inte flera integrationer och säkerhetskopior samtidigt, eftersom ett förbättrat resultat då inte skulle visa vilken ändring som hade betydelse.

Den relaterade ZimaSpace-analysen av Home Assistants bakgrundsarbete använder samma princip för att fastställa orsaken: identifiera ägaren till det köade eller schemalagda arbetet innan en resursökning tolkas som ett problem med maskinvarukapaciteten.

Systemet klarar testet när den nattliga skrivande processen har identifierats, aktiviteten är avgränsad, databasen och säkerhetskopiorna slutförs korrekt, ledigt utrymme förblir tillräckligt och normal lokal styrning inte påverkas under det ursprungliga tidsfönstret. Gå vidare med kontroll av lagringshälsa eller databasåterställning först när samma kontrollerade test visar ihållande fel, obegränsad varaktighet eller I/O-fördröjning som inte följer något legitimt schemalagt jobb.

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.