Configurações avançadas de Eliminação de Duplicação de Dados
Este documento descreve como alterar configurações avançadas de Eliminação de Duplicação de Dados. Para cargas de trabalho recomendadas, as configurações padrão devem ser suficientes. O principal motivo para alterar essas configurações é melhorar o desempenho da Eliminação de Duplicação de Dados com outros tipos de cargas de trabalho.
Alterar o plano de trabalho da Eliminação de Duplicação de Dados
Os planos de trabalho de Eliminação de Duplicação de Dados padrão são projetados para funcionarem bem com cargas de trabalho recomendadas e serem o menos intrusivos possível (exceto o trabalho Otimização de Prioridade, que está habilitado para o tipo de uso Backup). Quando as cargas de trabalho têm grandes requisitos de recursos, é possível fazer com que os trabalhos sejam executados somente durante horas ociosas, ou reduzir ou aumentar a quantidade de recursos do sistema que um trabalho de Eliminação de Duplicação de Dados pode consumir.
Alterar um plano de Eliminação de Duplicação de Dados
Os trabalhos de Eliminação de Duplicação de Dados são programados pelo Agendador de Tarefas do Windows e podem ser exibidos e editados lá no caminho Microsoft\Windows\Deduplication. A Eliminação de Duplicação de Dados inclui vários cmdlets que facilitam o agendamento.
Get-DedupSchedule
mostra os trabalhos agendados atualmente.New-DedupSchedule
cria um novo trabalho agendado.Set-DedupSchedule
modifica um trabalho agendado existente.Remove-DedupSchedule
remove um trabalho agendado.
O motivo mais comum para alterar quando executar trabalhos de Eliminação de Duplicação de Dados é garantir que os trabalhos sejam executados durante fora do horário comercial. O exemplo dado em passo a passo a seguir mostra como modificar o plano de Eliminação de Duplicação de Dados para um cenário em que tudo corre bem: um host hiperconvergido do Hyper-V que fica ocioso nos fins de semana e depois das 19h durante a semana. Para alterar a agenda, execute os cmdlets do PowerShell a seguir em um contexto de Administrador.
Desabilite os trabalhos de Otimizaçãoagendados por hora.
Set-DedupSchedule -Name BackgroundOptimization -Enabled $false Set-DedupSchedule -Name PriorityOptimization -Enabled $false
Remova os trabalhos de Coleta de Lixo e Anulação de Integridade agendados atualmente.
Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ } Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
Crie um trabalho noturno de Otimização a ser executado às 19h com prioridade alta e todas as CPUs e memória disponíveis no sistema.
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")
Observação
A parte date do parâmetro
System.Datetime
fornecido a-Start
é irrelevante (desde que esteja no passado), mas a parte time especifica quando o trabalho deve começar.Crie um trabalho de Coleta de Lixo semanal a ser executado no sábado, começando às 19h, com prioridade alta e todas as CPUs e memória disponíveis no sistema.
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")
Crie um trabalho de Anulação de Integridade semanal a ser executado no domingo, começando às 7h, com prioridade alta e todas as CPUs e memória disponíveis no sistema.
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")
Configurações disponíveis para todos os trabalhos
Você pode alternar as seguintes configurações para trabalhos de Eliminação de Duplicação de Dados novos ou agendados:
Nome do parâmetro | Definição | Valores aceitos | Por que você deseja definir esse valor? |
---|---|---|---|
Type | O tipo do trabalho que deve ser agendado |
|
Esse valor é necessário porque é o tipo de trabalho que você deseja agendar. Esse valor não pode ser alterado depois que a tarefa é agendada. |
Prioridade | A prioridade do sistema do trabalho agendado |
|
Esse valor ajuda o sistema a determinar como alocar tempo da CPU. Alta usará mais tempo de CPU; Baixa usará menos. |
Dias | Os dias em que o trabalho foi agendado | Uma matriz de números inteiros de 0 a 6 que representa os dias da semana:
|
Tarefas agendadas devem ser executadas em pelo menos um dia. |
Núcleos | O percentual de núcleos no sistema que um trabalho deve usar | Números inteiros de 0 a 100 (indica uma porcentagem) | Para controlar o nível de impacto que um trabalho terá nos recursos de computação no sistema |
DurationHours | O número máximo de horas que um trabalho deve ter permissão de execução | Números inteiros positivos | Para impedir que um trabalho seja executado em horas não ociosas de uma carga de trabalho |
habilitado | Se o trabalho será executado ou não | Verdadeiro/Falso | Para desabilitar um trabalho sem removê-lo |
Completo | Para agendar um trabalho de Coleta de Lixo completo | Alternar (verdadeiro/falso) | Por padrão, o quarto trabalho sempre é um trabalho de Coleta de Lixo. Com essa opção, você pode agendar a coleta de lixo completa para ser executada com maior frequência. |
InputOutputThrottle | Especifica a quantidade de limitação de entrada/saída aplicada ao trabalho | Números inteiros de 0 a 100 (indica uma porcentagem) | A limitação faz com que os trabalhos não interfiram com outros processos intensos de E/S. |
Memória | A porcentagem de memória do sistema que um trabalho deve usar | Números inteiros de 0 a 100 (indica uma porcentagem) | Para controlar o nível de impacto que o trabalho terá sobre os recursos de memória do sistema |
Nome | O nome do trabalho agendado | String | Um trabalho deve ter um nome de identificação exclusivo. |
ReadOnly | Indica que o trabalho de anulação processa e relata as corrupções encontradas, mas não executa ações de reparo | Alternar (verdadeiro/falso) | Você deseja restaurar manualmente os arquivos que ficam em seções inválidas do disco. |
Iniciar | Especifica a hora em que um trabalho deve ser iniciado | System.DateTime |
A parte date do parâmetro System.Datetime fornecido a Start é irrelevante (desde que esteja no passado), mas a parte time especifica quando o trabalho deve começar. |
StopWhenSystemBusy | Especifica se a Eliminação de Duplicação de Dados deve parar quando o sistema está ocupado | Alternar (Verdadeiro/Falso) | Essa opção oferece a capacidade de controlar o comportamento da Eliminação de Duplicação de Dados. Isso é particularmente importante se você deseja executar a Eliminação de Duplicação de Dados enquanto sua carga de trabalho não está ociosa. |
Alterar configurações de Eliminação de Duplicação de Dados em todo o volume
Alternar configurações de volume
Você pode definir as configurações padrão para Eliminação de Duplicação de Dados de todo o volume por meio do tipo de uso que você seleciona quando habilita a eliminação de duplicação de um volume. A Eliminação de Duplicação de Dados inclui cmdlets que facilitam a edição das configurações de todo o volume:
As principais razões para modificar as configurações de volume do tipo de uso selecionado são para melhorar o desempenho de leitura de arquivos específicos (como multimídia ou outros tipos de arquivos já compactados) ou para ajustar a Eliminação de Duplicação de Dados e ter uma otimização melhor da sua carga de trabalho específica. O exemplo a seguir mostra como alterar as configurações de Eliminação de Duplicação de Dados do volume para uma carga de trabalho que se parece mais com uma carga de trabalho do servidor de arquivos para uso geral, mas utiliza arquivos grandes que mudam com frequência.
confira as configurações de volume atuais para o Volume Compartilhado Clusterizado 1.
Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
Habilite OptimizePartialFiles no Volume Compartilhado Clusterizado 1 para que a política MinimumFileAge se aplique a seções do arquivo em vez de se aplicar a todo o arquivo. Isso faz com que a maior parte do arquivo seja otimizada, mesmo que as seções do arquivo sejam alteradas regularmente.
Set-DedupVolume -Volume C:\ClusterStorage\Volume1 -OptimizePartialFiles
Configurações de todo o volume disponíveis
Nome da configuração | Definição | Valores aceitos | Por que você deseja alterar esse valor? |
---|---|---|---|
ChunkRedundancyThreshold | O número de vezes que uma parte é referenciada antes de ser duplicada na seção do ponto de acesso do Repositório de partes. O valor da seção de ponto de acesso é que as partes ditas "populares" referenciadas com frequência têm vários caminhos de acesso para melhorar o tempo de acesso. | Números inteiros positivos | O principal motivo para alterar esse número é o aumento da taxa de economia de volumes com eliminação de duplicação alta. Em geral, o valor padrão (100) é a configuração recomendada e você não precisa modificá-lo. |
ExcludeFileType | Tipos de arquivos que são excluídos da otimização | Matriz de extensões de arquivo | Alguns tipos de arquivo, especialmente multimídia ou arquivos já compactados, não se beneficiam muito da otimização. Essa configuração permite que você configure quais tipos são excluídos. |
ExcludeFolder | Especifica caminhos de pasta que não devem ser considerados para otimização | Matriz de caminhos de pasta | Se você quer melhorar o desempenho ou evitar que o conteúdo de determinados caminhos sejam otimizados, pode excluir determinados caminhos do volume na consideração para otimização. |
InputOutputScale | Especifica o nível da paralelização de E/S (filas E/S) que a Eliminação de Duplicação de Dados usa em um volume durante um trabalho de pós-processamento | Números inteiros positivos no intervalo de 1 a 36 | O principal motivo para modificar esse valor é a diminuição do impacto no desempenho de uma carga de trabalho alta de E/S restringindo o número de filas de E/S que a Eliminação de Duplicação de Dados pode usar em um volume. Observe que a modificação dessa configuração padrão pode fazer com que os trabalhos de pós-processamento da Eliminação de Duplicação de Dados fiquem lentos. |
MinimumFileAgeDays | Número de dias após a criação do arquivo antes que o arquivo seja considerado na política para otimização. | Números inteiros positivos (incluindo zero) | Os tipos de uso Padrão e HyperV definem esse valor como 3 para maximizar o desempenho em arquivos populares ou recém-criados. Convém modificar isso se você quer que a Eliminação de Duplicação de Dados seja mais agressiva ou se não se importa com a latência extra associada à eliminação de duplicação. |
MinimumFileSize | Tamanho mínimo que um arquivo precisa ter para ser considerado na política de otimização | Números inteiros positivos (bytes) maiores que 32 KB | O principal motivo para alterar esse valor é a exclusão de arquivos pequenos que podem ter limitado o valor de otimização para economizar tempo de computação. |
NoCompress | Se os fragmentos devem ser compactados antes de serem colocados no Repositório de Partes ou não | Verdadeiro/Falso | Alguns tipos de arquivos, especialmente arquivos multimídia e tipos de arquivos já compactados, não podem ser compactados direito. Essa configuração permite que você desative a compactação para todos os arquivos no volume. Isso é ideal se você está otimizando um conjunto de dados que tem muitos arquivos já compactados. |
NoCompressionFileType | Tipos de arquivo cujas partes não devem ser comprimidas antes de irem para o Repositório de partes | Matriz de extensões de arquivo | Alguns tipos de arquivos, especialmente arquivos multimídia e tipos de arquivos já compactados, não podem ser compactados direito. Essa configuração permite que a compactação seja desligada para esses arquivos, poupando recursos da CPU. |
OptimizeInUseFiles | Quando habilitado, os arquivos que têm identificadores ativos serão considerados na política de otimização. | Verdadeiro/Falso | Habilite essa configuração se sua carga de trabalho mantém os arquivos abertos por longos períodos de tempo. Se essa configuração não está habilitada, um arquivo nunca é otimizado se a carga de trabalho tem um identificador aberto, mesmo que ele apenas acrescente dados no final de vez em quando. |
OptimizePartialFiles | Quando habilitado, o valor de MinimumFileAge se aplica a segmentos de um arquivo em vez se aplicar a todo ele. | Verdadeiro/Falso | Habilite essa configuração se sua carga de trabalho funciona com arquivos grandes e editados frequentemente, quando a maior parte do conteúdo do arquivo permanece inalterada. Se essa configuração não está habilitada, esses arquivos nunca são otimizados porque são sempre alterados, mesmo quando a maior parte do conteúdo do arquivo está pronta para ser otimizada. |
Verificar | Quando habilitada, se o hash de uma parte corresponde a uma parte que já temos em nosso Repositório de Partes, os fragmentos são comparados byte a byte para garantir que são idênticos. | Verdadeiro/Falso | Esse é um recurso de integridade que não permite que o algoritmo de hash que compara partes cometa um erro comparando dois blocos de dados que são diferentes, mas têm o mesmo hash. Na prática, é extremamente improvável que isso aconteça. A habilitação do recurso de verificação adiciona sobrecarga significativa ao trabalho de otimização. |
Alterar configurações de Eliminação de Duplicação de Dados em todo o sistema
A Eliminação de Duplicação de Dados tem configurações adicionais em todo o sistema que podem ser definidas no registro. Essas configurações se aplicam a todos os trabalhos e aos volumes que são executados no sistema. Redobre os cuidados ao editar o registro.
Por exemplo, convém desabilitar a coleta de lixo completa. Para saber mais sobre a utilidade disso em seu cenário, confira as Perguntas frequentes. Para editar o registro com o PowerShell:
Se a Eliminação de Duplicação de Dados está em execução em um 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
Se a Eliminação de Duplicação de Dados não está em execução em um cluster:
Set-ItemProperty -Path HKLM:\System\CurrentControlSet\Services\ddpsvc\Settings -Name DeepGCInterval -Type DWord -Value 0xFFFFFFFF
Configurações de todo o sistema disponíveis
Nome da configuração | Definição | Valores aceitos | Por que você deseja alterar isso? |
---|---|---|---|
WlmMemoryOverPercentThreshold | Essa configuração permite que os trabalhos usem mais memória do que os juízes da Eliminação de Duplicação de Dados para realmente estarem disponíveis. Por exemplo, uma configuração de 300 significaria que o trabalho precisa usar três vezes mais a memória atribuída para ser cancelada. | Números inteiros positivos (um valor 300 significa 300% ou 3 vezes) | Se você tem outra tarefa, ela será interrompida se a Eliminação de Duplicação de Dados usar mais memória |
DeepGCInterval | Essa configuração define o intervalo no qual os trabalhos de Coleta de Lixo regulares se tornam Coleta de Lixo completa. Uma configuração de X significa que a cada X trabalhos, um era trabalho de Coleta de Lixo completa. Observe que a Coleta de Lixo completa sempre está desabilitada (independentemente do valor do registro) para volumes com o tipo de uso Backup. Start-DedupJob -Type GarbageCollection -Full Pode ser usada se for desejada a Coleta de Lixo completa em um volume de Backup. |
Números inteiros (-1 indica desabilitada) | Confira esta pergunta frequente |
Perguntas frequentes
Alterei uma configuração de Eliminação de Duplicação de Dados e agora os trabalhos estão lentos ou não são concluídos ou meu desempenho de carga de trabalho diminuiu. Porque? Essas configurações oferecem muito poder para controlar como a Eliminação de Duplicação de Dados é executada. Use-as com responsabilidade e monitore o desempenho.
Quero executar um trabalho de Eliminação de Duplicação de Dados no momento, mas não quero criar uma nova agenda. Posso fazer isso? Sim, todos os trabalhos podem ser executados manualmente.
Qual é a diferença entre a Coleta de Lixo completa e a regular? Existem dois tipos de Coleta de Lixo:
- A Coleta de Lixo regular usa um algoritmo estatístico para encontrar as partes grandes não referenciadas que atendem a certos critérios (memória e IOPs baixos). A Coleta de Lixo regular compacta um contêiner de repositório de partes somente se uma porcentagem mínima das partes não for referenciada. Esse tipo de Coleta de Lixo é executado muito mais rapidamente e usa menos recursos do que a Coleta de Lixo completa. O agendamento padrão de trabalho de Coleta de Lixo regular é a execução uma vez por semana.
- A Coleta de Lixo completa faz um trabalho muito mais completo de localizar partes não referenciadas e liberar mais espaço em disco. A Coleta de Lixo completa compacta cada contêiner, mesmo que só haja uma única parte no contêiner sem referência. A Coleta de Lixo completa também libera espaço que pode estar em uso quando há uma falha ou queda de energia durante um trabalho de Otimização. Os trabalhos de Coleta de Lixo completa recuperarão 100% do espaço disponível que pode ser recuperado em um volume com eliminação de duplicação com o custo de exigir mais tempo e recursos do sistema em comparação com um trabalho de Coleta de Lixo regular. O trabalho de Coleta de Lixo completa normalmente encontra e libera até 5% mais dados não referenciados do que um trabalho de Coleta de Lixo regular. O agendamento padrão do trabalho de Coleta de Lixo completa é a execução na quarta vez em que uma Coleta de Lixo está agendada.
Por que eu desejaria desabilitar a coleta de lixo completa?
- A Coleta de Lixo pode prejudicar o tempo de vida da cópia de sombra de vida útil do volume e o tamanho do backup incremental. Variação alta ou cargas de trabalho com E/S intensivas podem ver uma degradação no desempenho por causa dos trabalhos de Coleta de Lixo completa.
- Você pode executar um trabalho de Coleta de Lixo completa no PowerShell manualmente para limpar vazamentos se você sabe que o seu sistema falhou.