Delen via


Geavanceerde instellingen voor gegevensontdubbeling

In dit document wordt beschreven hoe u geavanceerde instellingen voor gegevensontdubbeling wijzigt. Voor aanbevolen werkbelastingenmoeten de standaardinstellingen voldoende zijn. De belangrijkste reden voor het wijzigen van deze instellingen is het verbeteren van de prestaties van gegevensontdubbeling met andere soorten werkbelastingen.

Taakschema's voor gegevensontdubbeling wijzigen

De standaardtaakplanningen voor gegevensontdubbeling zijn ontworpen om goed te werken voor aanbevolen werkbelastingen en zo niet-intrusief mogelijk te zijn (met uitzondering van de Prioriteitsoptimalisatie taak die is ingeschakeld voor het Back-up gebruikstype). Wanneer workloads grote resourcevereisten hebben, is het mogelijk om ervoor te zorgen dat taken alleen tijdens niet-actieve uren worden uitgevoerd of om de hoeveelheid systeemresources te verminderen of te verhogen die een gegevensontdubbelingstaak mag gebruiken.

Een gegevensontdubbelingsschema wijzigen

Gegevensontdubbelingstaken worden gepland via Windows Task Scheduler en kunnen daar worden bekeken en bewerkt onder het pad Microsoft\Windows\Ontdubbeling. Gegevensontdubbeling bevat verschillende cmdlets waarmee u eenvoudig kunt plannen.

De meest voorkomende reden voor het wijzigen wanneer gegevensontdubbelingstaken worden uitgevoerd, is ervoor te zorgen dat taken buiten kantooruren worden uitgevoerd. In het volgende stapsgewijze voorbeeld ziet u hoe u het schema voor gegevensontdubbeling wijzigt voor een zonnige dag scenario: een hypergeconvergeerde Hyper-V host die niet actief is in het weekend en na 17:00 uur op weekavonden. Als u de planning wilt wijzigen, voert u de volgende PowerShell-cmdlets uit in een beheerderscontext.

  1. Schakel de geplande Optimalisatie taken per uur uit.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Verwijder de momenteel geplande Garbage Collection en Integrity Scrubbing taken.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Maak een nachtoptimalisatietaak die om 19:00 uur wordt uitgevoerd met hoge prioriteit en alle CPU's en geheugen die beschikbaar zijn op het systeem.

     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

    Het datum deel van de System.Datetime die aan -Start is verstrekt, is niet relevant (zolang deze zich in het verleden bevindt), maar het tijd deel geeft aan wanneer de opdracht moet worden gestart.

  4. Maak een wekelijkse garbagecollectiontaak die wordt uitgevoerd op zaterdag vanaf 7:00 uur met hoge prioriteit en alle CPU's en geheugen die beschikbaar zijn op het systeem.

     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. Maak een wekelijkse integrity scrubbing-taak die wordt uitgevoerd op zondag vanaf 7:00 uur met hoge prioriteit en alle CPU's en geheugen die beschikbaar zijn op het systeem.

     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")
    

Beschikbare instellingen voor de hele taak

U kunt de volgende instellingen voor nieuwe of geplande gegevensontdubbelingstaken in- of uitschakelen:

Parameternaam Definition Geaccepteerde waarden Waarom wilt u deze waarde instellen?
Type Het type taak dat moet worden gepland
  • Optimization
  • GarbageCollection
  • Scrubbing
Deze waarde is vereist omdat dit het type taak is dat u wilt plannen. Deze waarde kan niet worden gewijzigd nadat de taak is gepland.
Priority De systeemprioriteit van de geplande taak
  • High
  • Normal
  • Low
Deze waarde helpt het systeem te bepalen hoe CPU-tijd moet worden toegewezen. Wanneer hoog is, zal meer CPU-tijd gebruiken; wanneer laag is, zal minder gebruiken.
Days De dagen waarop de taak is gepland Een matrix met gehele getallen 0-6 die de dagen van de week vertegenwoordigen:
  • 0 = zondag
  • 1 = maandag
  • 2 = dinsdag
  • 3 = woensdag
  • 4 = donderdag
  • 5 = vrijdag
  • 6 = zaterdag
Geplande taken moeten ten minste één dag worden uitgevoerd.
Cores Het percentage kernen op het systeem dat een taak moet gebruiken Gehele getallen 0-100 (geeft een percentage aan) Bepalen welk niveau van invloed een taak heeft op de rekenresources op het systeem
DurationHours Het maximum aantal uren dat een taak mag worden uitgevoerd Positieve gehele getallen Om te voorkomen dat een taak in de niet-actieve uren van een werkbelasting wordt uitgevoerd
Enabled Of de taak wordt uitgevoerd True/false Een taak uitschakelen zonder deze te verwijderen
Full Voor het plannen van een volledige afvalinzamelingstaak Schakeloptie (waar/onwaar) Standaard is elke vierde taak een volledige Garbage Collection-taak. Met deze schakelaar kunt u plannen dat volledige vuilnisophaling vaker wordt uitgevoerd.
InputOutputThrottle Geeft de hoeveelheid invoer/uitvoer beperking die wordt toegepast op de taak aan. Gehele getallen 0-100 (geeft een percentage aan) Beperking zorgt ervoor dat taken geen invloed hebben op andere I/O-intensieve processen.
Memory Het percentage geheugen op het systeem dat een taak moet gebruiken Gehele getallen 0-100 (geeft een percentage aan) Bepalen welk impactniveau de taak heeft op de geheugenbronnen van het systeem
Name De naam van de geplande taak String Een taak moet een unieke naam hebben.
ReadOnly Geeft aan dat de scrubbing-taak items verwerkt en rapporteert over corrupties die worden gevonden, maar geen herstelacties uitvoert. Schakeloptie (waar/onwaar) U wilt bestanden die zich op beschadigde secties van de schijf bevinden, handmatig herstellen.
Start Hiermee geeft u de tijd waarop een taak moet worden gestart System.DateTime De datum gedeelte van de System.Datetime voorzien aan Start is niet relevant (zolang deze zich in het verleden bevindt), maar het tijd gedeelte geeft aan wanneer de taak moet beginnen.
StopWhenSystemBusy Hiermee geeft u op of gegevensontdubbeling moet stoppen als het systeem bezet is Schakel (Aan/Uit) Deze schakeloptie biedt u de mogelijkheid om het gedrag van gegevensontdubbeling te beheren. Dit is vooral belangrijk als u Gegevensontdubbeling wilt uitvoeren terwijl uw werkbelasting niet inactief is.

Instellingen voor gegevensontdubbeling voor het gehele volume wijzigen

Volume-instellingen in-/schakelen

U kunt de standaardinstellingen voor gegevensontdubbeling instellen via het gebruikstype die u selecteert wanneer u een ontdubbeling voor een volume inschakelt. Gegevensontdubbeling bevat cmdlets waarmee u eenvoudig instellingen voor het hele volume kunt bewerken:

De belangrijkste redenen om de volume-instellingen van het geselecteerde gebruikstype te wijzigen, zijn het verbeteren van de leesprestaties voor specifieke bestanden (zoals multimedia of andere bestandstypen die al zijn gecomprimeerd) of om gegevensontdubbeling af te stemmen voor een betere optimalisatie voor uw specifieke werkbelasting. In het volgende voorbeeld ziet u hoe u de volume-instellingen voor gegevensontdubbeling wijzigt voor een workload die het meest lijkt op een werkbelasting van een bestandsserver voor algemeen gebruik, maar grote bestanden gebruikt die regelmatig worden gewijzigd.

  1. Zie de huidige volume-instellingen voor Cluster Shared Volume 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Schakel OptimizePartialFiles in op Cluster Shared Volume 1, zodat het MinimumFileAge-beleid van toepassing is op secties van het bestand in plaats van het hele bestand. Dit zorgt ervoor dat het merendeel van het bestand wordt geoptimaliseerd, ook al worden secties van het bestand regelmatig gewijzigd.

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

Beschikbare volumebrede instellingen

Instellingsnaam Definition Geaccepteerde waarden Waarom wilt u deze waarde wijzigen?
ChunkRedundancyThreshold Het aantal keren dat naar een segment wordt verwezen voordat een segment wordt gedupliceerd in de hotspotsectie van het segmentarchief. De waarde van de hotspotsectie is dat zogenaamde 'hot'-segmenten waarnaar vaak wordt verwezen meerdere toegangspaden hebben om de toegangstijd te verbeteren. Positieve gehele getallen De belangrijkste reden om dit aantal te wijzigen, is door het besparingspercentage voor volumes met hoge duplicatie te verhogen. Over het algemeen is de standaardwaarde (100) de aanbevolen instelling en hoeft u deze niet te wijzigen.
ExcludeFileType Bestandstypen die zijn uitgesloten van optimalisatie Matrix van bestandsextensies Sommige bestandstypen, met name multimedia of bestanden die al zijn gecomprimeerd, profiteren niet erg van geoptimaliseerd worden. Met deze instelling kunt u configureren welke typen worden uitgesloten.
ExcludeFolder Specificeert mappaden die niet in aanmerking moeten worden genomen voor optimalisatie. Reeks van mappaden Als u de prestaties wilt verbeteren of inhoud in bepaalde paden niet wilt optimaliseren, kunt u bepaalde paden op het volume uitsluiten van overwegingen voor optimalisatie.
InputOutputScale Hiermee geeft u het niveau van IO-parallellisatie (IO-wachtrijen) aan dat moet worden gebruikt voor gegevensontdubbeling op een volume tijdens een taak na verwerking. Positieve gehele getallen variërend van 1-36 De belangrijkste reden om deze waarde te wijzigen, is het verminderen van de impact op de prestaties van een hoge IO-werkbelasting door het aantal IO-wachtrijen te beperken dat gegevensontdubbeling op een volume mag gebruiken. Als u deze instelling wijzigt vanaf de standaardinstelling, kan dit ertoe leiden dat de naverwerkingstaken van gegevensontdubbeling langzaam worden uitgevoerd.
MinimumFileAgeDays Aantal dagen nadat het bestand is gemaakt voordat het als in lijn met het beleid voor optimalisatie wordt beschouwd. Positieve gehele getallen (inclusief nul) De Standaard- en Hyper-V- gebruikstypen stellen deze waarde in op 3 om de prestaties van dynamische of onlangs gemaakte bestanden te maximaliseren. U kunt dit wijzigen als u wilt dat gegevensontdubbeling krachtiger is of als u zich geen zorgen maakt over de extra latentie die gepaard gaat met ontdubbeling.
MinimumFileSize Minimale bestandsgrootte die een bestand moet hebben om te worden beschouwd als in overeenstemming met het beleid voor optimalisatie. Positieve gehele getallen (bytes) groter dan 32 kB De belangrijkste reden om deze waarde te wijzigen, is het uitsluiten van kleine bestanden die mogelijk een beperkte optimalisatiewaarde hebben om rekentijd te besparen.
NoCompress Of het segment moet worden gecomprimeerd voordat ze in de Chunk Store worden geplaatst. True/False Sommige typen bestanden, met name multimediabestanden en al gecomprimeerde bestandstypen, worden mogelijk niet goed gecomprimeerd. Met deze instelling kunt u compressie uitschakelen voor alle bestanden op het volume. Dit zou ideaal zijn als u een gegevensset optimaliseert die veel bestanden bevat die al zijn gecomprimeerd.
NoCompressionFileType Bestandstypen waarvan segmenten niet mogen worden gecomprimeerd voordat ze naar de Chunk Store gaan Matrix van bestandsextensies Sommige typen bestanden, met name multimediabestanden en al gecomprimeerde bestandstypen, worden mogelijk niet goed gecomprimeerd. Met deze instelling kan compressie worden uitgeschakeld voor deze bestanden, waardoor CPU-resources worden opgeslagen.
OptimizeInUseFiles Wanneer deze optie is ingeschakeld, worden bestanden met actieve bestandskoppelingen beschouwd als binnen het beleid voor optimalisatie. True/false Schakel deze instelling in als uw workload bestanden gedurende langere tijd openhoudt. Als deze instelling niet is ingeschakeld, zal een bestand nooit worden geoptimaliseerd als de werklast er een open handle naar heeft, zelfs niet als er slechts af en toe gegevens aan het einde worden toegevoegd.
OptimizePartialFiles Wanneer deze optie is ingeschakeld, is de waarde MinimumFileAge van toepassing op segmenten van een bestand in plaats van op het hele bestand. True/false Schakel deze instelling in als uw werkbelasting werkt met grote, vaak bewerkte bestanden waarvan de meeste bestandsinhoud ongewijzigd blijft. Als deze instelling niet is ingeschakeld, worden deze bestanden nooit geoptimaliseerd omdat ze steeds worden gewijzigd, zelfs als de meeste bestandsinhoud gereed is om te worden geoptimaliseerd.
Verify Wanneer ingeschakeld, als de hash van een segment overeenkomt met een segment dat we al in onze Chunk-opslag hebben, worden de segmenten byte voor byte vergeleken om ervoor te zorgen dat ze identiek zijn. True/false Dit is een integriteitsfunctie die ervoor zorgt dat het hash-algoritme waarmee segmenten worden vergeleken, geen fout maakt door twee segmenten met gegevens te vergelijken die daadwerkelijk verschillend zijn, maar dezelfde hash hebben. In de praktijk is het uiterst onwaarschijnlijk dat dit ooit zou gebeuren. Als u de verificatiefunctie inschakelt, wordt er aanzienlijke overhead toegevoegd aan de optimalisatietaak.

Instellingen voor gegevensontdubbeling voor het hele systeem wijzigen

Gegevensontdubbeling heeft aanvullende systeembrede instellingen die kunnen worden geconfigureerd via het register. Deze instellingen zijn van toepassing op alle taken en volumes die op het systeem worden uitgevoerd. Bij het bewerken van het register moet extra zorg worden gegeven.

U kunt bijvoorbeeld de volledige Garbage Collection uitschakelen. Meer informatie over waarom dit nuttig kan zijn voor uw scenario vindt u in Veelgestelde vragen. Het register bewerken met PowerShell:

  • Als gegevensontdubbeling wordt uitgevoerd in een cluster:

      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
    
  • Als gegevensontdubbeling niet wordt uitgevoerd in een cluster:

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

Beschikbare systeembrede instellingen

Instellingsnaam Definition Geaccepteerde waarden Waarom wilt u dit wijzigen?
WlmMemoryOverPercentThreshold Met deze instelling kunnen taken meer geheugen gebruiken dan gegevensontdubbeling aangeeft dat er daadwerkelijk beschikbaar is. Een instelling van 300 betekent bijvoorbeeld dat de taak drie keer het toegewezen geheugen moet gebruiken om te worden geannuleerd. Positieve gehele getallen (een waarde van 300 betekent 300% of 3 keer) Als u een andere taak hebt die stopt als gegevensontdubbeling meer geheugen nodig heeft
DeepGCInterval Met deze instelling configureert u het interval waarmee reguliere garbagecollectiontaken worden volledige garbagecollection-taken. De instelling van n betekent dat elke n-de taak een volledige garbage collection-taak is. Houd er rekening mee dat volledige Garbage Collection altijd is uitgeschakeld (ongeacht de registerwaarde) voor volumes met het Backupgebruikstype . Start-DedupJob -Type GarbageCollection -Full kan worden gebruikt als een volledige garbage collection gewenst is op een back-up volume. Gehele getallen (-1 geeft aan dat deze zijn uitgeschakeld) Zie deze veelgestelde vraag

Veelgestelde vragen

Ik heb een instelling voor Gegevensontdubbeling gewijzigd en nu worden taken traag uitgevoerd of niet afgerond, of de prestaties van mijn systeembelasting zijn afgenomen. Waarom? Deze instellingen bieden u veel mogelijkheden om te bepalen hoe Gegevensontdubbeling wordt uitgevoerd. Gebruik ze op verantwoorde wijze en de prestatiesbewaken.

ik nu een gegevensontdubbelingstaak wil uitvoeren, maar ik wil geen nieuwe planning maken. Kan ik dit doen? Ja, alle taken handmatig kunnen worden uitgevoerd.

Wat is het verschil tussen volledige en standaard Garbage Collection? Er zijn twee soorten Garbage Collection:

  • Reguliere garbage collection gebruikt een statistisch algoritme om grote onverwezen delen te vinden die voldoen aan bepaalde criteria (weinig geheugen en IOPS). Reguliere garbage collection comprimeert een segmentopslagcontainer alleen als een minimumpercentage van de segmenten niet wordt gerefereerd. Dit type garbagecollection wordt veel sneller uitgevoerd en gebruikt minder resources dan volledige garbagecollection. De standaardplanning van de reguliere garbage collection-taak is dat deze één keer per week wordt uitgevoerd.
  • volledige garbagecollection- voert een veel uitgebreidere taak uit om niet-deductiesegmenten te vinden en meer schijfruimte vrij te maken. Volledige garbage-collection compliceert elke container, zelfs als slechts één segment in de container onverwijst is. Volledige garbagecollection maakt ook ruimte vrij die mogelijk in gebruik was als er tijdens een optimalisatietaak een crash of stroomstoring is opgetreden. Volledige garbage collection-taken herstellen 100 procent van de beschikbare ruimte die kan worden teruggewonnen op een ontdubbeld volume, maar vereisen wel meer tijd en systeem-resources in vergelijking met een reguliere garbage collection-taak. De volledige vuilnisophaaldienst zal doorgaans tot 5 procent meer van de niet-gereferentieerde gegevens vinden en vrijgeven dan een reguliere vuilnisophaaldienst. De standaardplanning van de volledige Garbage Collection-taak is om elke vierde keer te draaien wanneer de Garbage Collection is gepland.

Waarom zou ik de volledige Garbage Collection willen uitschakelen?

  • Garbagecollection kan de schaduwkopieën van het volume en de omvang van incrementele back-ups nadelig beïnvloeden. Hoge doorloop of I/O-intensieve werkbelastingen kunnen een verslechtering van de prestaties ondervinden door volledige Garbage Collection-taken.
  • U kunt handmatig een volledige garbagecollection-taak uitvoeren vanuit PowerShell om lekken op te schonen als u weet dat uw systeem is vastgelopen.