Dela via


Inställningar för avancerad datadeduplicering

I det här dokumentet beskrivs hur du ändrar avancerade inställningar för datadeduplicering . För rekommenderade arbetsbelastningar bör standardinställningarna vara tillräckliga. Den främsta anledningen till att ändra de här inställningarna är att förbättra datadedupliceringens prestanda med andra typer av arbetsbelastningar.

Ändra scheman för datadedupliceringsjobb

Standardscheman för datadedupliceringsjobb är utformade för att fungera bra för rekommenderade arbetsbelastningar och vara så icke-påträngande som möjligt (exklusive prioritetsoptimeringsjobbet som är aktiverat för användningstypen Säkerhetskopiering). När arbetsbelastningar har stora resurskrav är det möjligt att se till att jobb endast körs under inaktiva timmar, eller att minska eller öka mängden systemresurser som ett datadedupliceringsjobb tillåts använda.

Ändra ett datadedupliceringsschema

Datadedupliceringsjobb schemaläggs via Windows Schemaläggare och kan visas och redigeras där under sökvägen Microsoft\Windows\Deduplicering. Datadeduplicering innehåller flera cmdletar som gör det enkelt att schemalägga.

Den vanligaste orsaken till att ändra när datadedupliceringsjobb körs är att se till att jobb körs under lediga timmar. Följande steg-för-steg-exempel visar hur du ändrar datadedupliceringsschemat för ett soligt dagscenario : en hyperkonvergerad Hyper-V värd som är inaktiv på helger och efter 19:00 på veckokvällar. Om du vill ändra schemat kör du följande PowerShell-cmdletar i en administratörskontext.

  1. Inaktivera schemalagda timoptimeringsjobb .

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Ta bort de schemalagda skräpinsamlings- och integritetsrensningsjobben.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Skapa ett nattligt optimeringsjobb som körs kl. 19:00 med hög prioritet och alla processorer och minne som är tillgängliga i systemet.

     New-DedupSchedule -Name "NightlyOptimization" -Type Optimization -DurationHours 11 -Memory 100 -Cores 100 -Priority High -Days @(1,2,3,4,5) -Start (Get-Date "2016-08-08 19:00:00")
    

    Note

    Datumdelen av den System.Datetime angivna till -Start är irrelevant (så länge den är tidigare), men tidsdelen anger när jobbet ska starta.

  4. Skapa ett veckojobb för skräpinsamling som körs på lördag med start 07:00 med hög prioritet och alla processorer och minne som är tillgängliga i systemet.

     New-DedupSchedule -Name "WeeklyGarbageCollection" -Type GarbageCollection -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(6) -Start (Get-Date "2016-08-13 07:00:00")
    
  5. Skapa ett veckojobb för integritetsrensning som körs på söndag med start kl. 07.00 med hög prioritet och alla processorer och minne som är tillgängliga i systemet.

     New-DedupSchedule -Name "WeeklyIntegrityScrubbing" -Type Scrubbing -DurationHours 23 -Memory 100 -Cores 100 -Priority High -Days @(0) -Start (Get-Date "2016-08-14 07:00:00")
    

Tillgängliga inställningar för hela jobbet

Du kan växla mellan följande inställningar för nya eller schemalagda datadedupliceringsjobb:

Parameternamn Definition Godkända värden Varför skulle du vilja ange det här värdet?
Type Typen av jobb som ska schemaläggas
  • Optimization
  • GarbageCollection
  • Scrubbing
Det här värdet krävs eftersom det är den typ av jobb som du vill schemalägga. Det går inte att ändra det här värdet när aktiviteten har schemalagts.
Priority Systemprioriteten för det schemalagda jobbet
  • High
  • Normal
  • Low
Det här värdet hjälper systemet att avgöra hur processortiden ska allokeras. Hög kommer att använda mer CPU-tid, låg kommer att använda mindre.
Days De dagar som jobbet har schemalagts En matris med heltal 0–6 som representerar veckodagarna:
  • 0 = söndag
  • 1 = måndag
  • 2 = tisdag
  • 3 = onsdag
  • 4 = torsdag
  • 5 = fredag
  • 6 = lördag
Schemalagda aktiviteter måste köras minst en gång på en dag.
Cores Procentandelen kärnor i systemet som ett jobb ska använda Heltal 0–100 (anger en procentandel) Så här styr du vilken effekt ett jobb kommer att ha på beräkningsresurserna i systemet
DurationHours Det maximala antalet timmar som ett jobb ska tillåtas att köras Positiva heltal Förhindra att ett jobb körs i en arbetsbelastnings inaktiva timmar
Enabled Om jobbet kommer att köras True/false Inaktivera ett jobb utan att ta bort det
Full För att schemalägga ett fullständigt skräpinsamlingsjobb Växla (sant/falskt) Som standard är vart fjärde jobb ett fullständigt skräpinsamlingsjobb. Med den här växeln kan du schemalägga fullständig skräpinsamling så att den körs oftare.
InputOutputThrottle Anger hur mycket in-/utdatabegränsning som tillämpas på jobbet Heltal 0–100 (anger en procentandel) Begränsning säkerställer att jobb inte stör andra I/O-intensiva processer.
Memory Procentandelen minne i systemet som ett jobb ska använda Heltal 0–100 (anger en procentandel) Så här styr du vilken effekt jobbet kommer att ha på systemets minnesresurser
Name Namnet på det schemalagda jobbet String Ett jobb måste ha ett unikt identifierbart namn.
ReadOnly Anger att skrubbningsjobbet bearbetar och rapporterar om korruptioner som hittas, men utför inga reparationsåtgärder. Växla (sant/falskt) Du vill återställa filer som finns på felaktiga delar av disken manuellt.
Start Anger den tid ett jobb ska starta System.DateTime Datum i det System.Datetime som anges till Start är irrelevant (så länge det är i det förflutna), men tiden anger när jobbet ska starta.
StopWhenSystemBusy Anger om datadeduplicering ska stoppas om systemet är upptaget Växla (sant/falskt) Den här växeln ger dig möjlighet att styra beteendet för Datadeduplicering – detta är särskilt viktigt om du vill köra Datadeduplicering medan din arbetsbelastning inte är inaktiv.

Ändra volymomfattande inställningar för datadeduplicering

Växla volyminställningar

Du kan ange volymomfattande standardinställningar för Datadeduplicering via den användningstyp som du väljer när du aktiverar en deduplicering för en volym. Datadeduplicering innehåller cmdletar som gör det enkelt att redigera volymomfattande inställningar:

De främsta orsakerna till att ändra volyminställningarna från den valda användningstypen är att förbättra läsprestanda för specifika filer (till exempel multimedia eller andra filtyper som redan är komprimerade) eller finjustera Datadeduplicering för bättre optimering för din specifika arbetsbelastning. I följande exempel visas hur du ändrar volyminställningarna för Datadeduplicering för en arbetsbelastning som mest liknar en generell filserverarbetsbelastning, men som använder stora filer som ändras ofta.

  1. Se de aktuella volyminställningarna för klusterdelad volym 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Aktivera OptimizePartialFiles på klusterdelade volym 1 så att Principen MinimumFileAge gäller för delar av filen i stället för hela filen. Detta säkerställer att merparten av filen optimeras även om delar av filen ändras regelbundet.

     Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
    

Tillgängliga volymomfattande inställningar

Inställningsnamn Definition Godkända värden Varför skulle du vilja ändra det här värdet?
ChunkRedundancyThreshold Antalet gånger som en chunk refereras till innan en chunk dupliceras till hotspot-avsnittet i Chunk Store. Värdet för avsnittet hotspot är att så kallade "heta" segment som ofta refereras har flera åtkomstvägar för att förbättra åtkomsttiden. Positiva heltal Den främsta anledningen till att ändra det här antalet är att öka sparfrekvensen för volymer med hög duplicering. I allmänhet är standardvärdet (100) den rekommenderade inställningen och du bör inte behöva ändra detta.
ExcludeFileType Filtyper som undantas från optimering Matris med filnamnstillägg Vissa filtyper, särskilt multimedia eller filer som redan är komprimerade, drar inte särskilt stor nytta av att optimeras. Med den här inställningen kan du konfigurera vilka typer som undantas.
ExcludeFolder Anger mappsökvägar som inte ska beaktas för optimering Matris med mappsökvägar Om du vill förbättra prestanda eller förhindra att innehåll i vissa sökvägar optimeras kan du undanta vissa sökvägar på volymen från att övervägas för optimering.
InputOutputScale Anger nivån för I/O-parallellisering (I/O-köer) för datadeduplicering som ska användas på en volym under ett efterbearbetningsjobb Positiva heltal mellan 1-36 Den främsta anledningen till att ändra det här värdet är att minska effekten på prestanda för en hög I/O-arbetsbelastning genom att begränsa antalet I/O-köer som Datadeduplicering tillåts använda på en volym. Observera att om du ändrar den här inställningen från standardinställningen kan datadedupliceringens efterbearbetningsjobb köras långsamt.
MinimumFileAgeDays Antal dagar efter att en fil har skapats innan filen anses uppfylla riktlinjerna för optimering. Positiva heltal (inklusive noll) Standard- och Hyper-V-användningstyperna anger det här värdet till 3 för att maximera prestanda för frekventa eller nyligen skapade filer. Du kanske vill ändra detta om du vill att Datadedupliceringen ska vara mer aggressiv eller om du inte bryr dig om den extra svarstid som är associerad med deduplicering.
MinimumFileSize Minsta filstorlek som en fil måste ha för att anses följa policyn för optimering. Positiva heltal (byte) större än 32 KB Den främsta anledningen till att ändra det här värdet är att undanta små filer som kan ha ett begränsat optimeringsvärde för att spara beräkningstid.
NoCompress Om chunkarna ska komprimeras innan de placeras i Chunk Store True/False Vissa typer av filer, särskilt multimediafiler och redan komprimerade filtyper, kanske inte komprimeras väl. Med den här inställningen kan du inaktivera komprimering för alla filer på volymen. Detta vore idealiskt om du optimerar en datauppsättning som har många filer som redan är komprimerade.
NoCompressionFileType Filtyper vars segment inte ska komprimeras innan de hamnar i segmentlagret Matris med filnamnstillägg Vissa typer av filer, särskilt multimediafiler och redan komprimerade filtyper, kanske inte komprimeras väl. Med den här inställningen kan komprimering inaktiveras för dessa filer, vilket sparar CPU-resurser.
OptimizeInUseFiles När det är aktiverat betraktas filer som har aktiva referenser mot dem som princip för optimering. True/false Aktivera den här inställningen om arbetsbelastningen håller filerna öppna under längre tidsperioder. Om den här inställningen inte är aktiverad optimeras aldrig en fil om arbetsbelastningen har ett öppet handtag, även om den bara ibland lägger till data i slutet.
OptimizePartialFiles När värdet är aktiverat gäller värdet MinimumFileAge för segment i en fil i stället för för hela filen. True/false Aktivera den här inställningen om din arbetsbelastning fungerar med stora, ofta redigerade filer där det mesta av filinnehållet är orört. Om den här inställningen inte är aktiverad skulle filerna aldrig optimeras eftersom de fortsätter att ändras, även om det mesta av filinnehållet är redo att optimeras.
Verify Om hashen för ett segment matchar ett segment som vi redan har i segmentlagret, jämförs segmenten byte för byte för att säkerställa att de är identiska. True/false Det här är en integritetsfunktion som säkerställer att hashalgoritmen som jämför segment inte gör ett misstag genom att jämföra två datasegment som faktiskt är olika men som har samma hash. I praktiken är det oerhört osannolikt att detta någonsin skulle inträffa. Aktivering av verifieringsfunktionen medför betydande omkostnader för optimeringsjobbet.

Ändra systemomfattande inställningar för datadeduplicering

Datadeduplicering har ytterligare systemomfattande inställningar som kan konfigureras via registret. De här inställningarna gäller för alla jobb och volymer som körs i systemet. Du måste vara extra försiktig när du redigerar registret.

Du kanske till exempel vill inaktivera fullständig skräpinsamling. Mer information om varför detta kan vara användbart för ditt scenario finns i Vanliga frågor och svar. Så här redigerar du registret med PowerShell:

  • Om Datadeduplicering körs i ett kluster:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
      Set-ItemProperty -Path HKLM:\CLUSTER\Dedup -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    
  • Om datadeduplicering inte körs i ett kluster:

      Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
    

Tillgängliga systemomfattande inställningar

Inställningsnamn Definition Godkända värden Varför skulle du vilja ändra detta?
WlmMemoryOverPercentThreshold Med den här inställningen kan jobb använda mer minne än vad som bedöms av datadeduplicering faktiskt finns tillgängligt. En inställning på 300 skulle till exempel innebära att jobbet måste använda tre gånger det tilldelade minnet för att avbrytas. Positiva heltal (ett värde på 300 innebär 300% eller 3 gånger) Om du har en annan uppgift som kommer att stoppas om Datadeduplicering använder mer minne
DeepGCInterval Den här inställningen konfigurerar det intervall med vilket vanliga skräpinsamlingsjobb blir fullständiga skräpinsamlingsjobb. En inställning av n skulle innebära att varje n:e jobb var ett fullständigt sophanteringsjobb. Observera att fullständig skräpinsamling alltid är inaktiverad (oavsett registervärde) för volymer med användningstypen Säkerhetskopiering. Start-DedupJob -Type GarbageCollection -Full kan användas om fullständig skräpinsamling önskas på en säkerhetskopieringsvolym. Heltal (-1 anger avaktiverad) Se den här vanliga frågan

Vanliga frågor och svar

Jag har ändrat en inställning för datadeduplicering och nu är jobben långsamma eller slutförs inte, eller så har arbetsbelastningsprestandan minskat. Varför? De här inställningarna ger dig mycket kraft att styra hur datadeduplicering körs. Använd dem på ett ansvarsfullt sätt och övervaka prestanda.

Jag vill köra ett datadedupliceringsjobb just nu, men jag vill inte skapa ett nytt schema – kan jag göra det? Ja, alla jobb kan köras manuellt.

Vad är skillnaden mellan fullständig och vanlig skräpinsamling? Det finns två typer av skräpinsamling:

  • Vanlig skräpinsamling använder en statistisk algoritm för att hitta stora orefererade segment som uppfyller ett visst villkor (lite minne och IOPS). Vanlig skräpinsamling komprimerar endast en datablockscontainer om en minsta procentandel av datablocken är orefererade. Den här typen av skräpinsamling körs mycket snabbare och använder färre resurser än fullständig skräpinsamling. Standardschemat för det vanliga skräpinsamlingsjobbet är att köras en gång i veckan.
  • Fullständig skräpinsamling gör ett mycket mer grundligt jobb med att hitta orefererade segment och frigöra mer diskutrymme. Fullständig skräpinsamling komprimerar varje container även om bara ett enda segment i containern är orefererat. Fullständig skräpinsamling frigör också utrymme som kan ha använts om det uppstod en krasch eller ett strömavbrott under ett optimeringsjobb. Fullständiga sophanteringsjobb återhämtar allt tillgängligt utrymme som kan återställas på en deduplicerad volym, vilket kräver mer tid och systemresurser jämfört med ett vanligt sophanteringsjobb. Det fullständiga skräpinsamlingsjobbet hittar och släpper vanligtvis upp till 5 procent mer av de orefererade data än ett vanligt skräpinsamlingsjobb. Standardschemat för det fullständiga skräpinsamlingsjobbet är att köra var fjärde gång skräpinsamling schemaläggs.

Varför skulle jag vilja inaktivera fullständig skräpinsamling?

  • Avfallshantering kan negativt påverka volymens livslängd för skuggkopior och storleken på inkrementella säkerhetskopior. Hög omsättning eller I/O-intensiva arbetsbelastningar kan få sämre prestanda av fullständiga skräpinsamlingsjobb.
  • Du kan manuellt köra ett fullständigt skräpinsamlingsjobb från PowerShell för att rensa läckor om du vet att systemet kraschade.