Share via


Configuración avanzada de Desduplicación de datos

Se aplica a: Windows Server 2022, Windows Server 2019, Windows Server 2016; Azure Stack HCI, versiones 21H2 y 20H2

En este documento se describe cómo modificar la configuración avanzada de Desduplicación de datos. Para las cargas de trabajo recomendadas, la configuración predeterminada debería ser suficiente. La razón principal para modificar esta configuración es mejorar el rendimiento de Desduplicación de datos con otros tipos de cargas de trabajo.

Modificación de programaciones de trabajos de Desduplicación de datos

Las programaciones predeterminadas de trabajos de Desduplicación de datos están diseñadas para funcionar bien con las cargas de trabajo recomendadas y ser lo menos intrusivas como sea posible (sin incluir el trabajo Optimización de prioridad que está habilitado para el tipo de uso Copia de seguridad). Cuando las cargas de trabajo tienen muchos requisitos de recursos, es posible garantizar que los trabajos se ejecuten solo durante las horas de inactividad, o bien reducir o aumentar la cantidad de recursos del sistema que un trabajo de Desduplicación de datos puede consumir.

Modificación de una programación de Desduplicación de datos

Los trabajos de Desduplicación de datos se programan a través del programador de tareas de Windows y pueden verse y modificarse en la ruta de acceso Microsoft\Windows\Deduplication. Desduplicación de datos incluye varios cmdlets que facilitan la programación.

La razón más común para cambiar cuando se ejecutan los trabajos de Desduplicación de datos es asegurarse de que los trabajos se ejecutan fuera del horario laboral. En el siguiente ejemplo paso a paso muestra cómo modificar la programación de Desduplicación de datos para un escenario de día soleado: un host de Hyper-V hiperconvergido que está inactivo los fines de semana y después de las 19:00 entre semana. Para cambiar la programación, ejecute los siguientes cmdlets de PowerShell en un contexto de administrador.

  1. Deshabilite los trabajos programados de Optimización cada hora.

     Set-DedupSchedule -Name BackgroundOptimization -Enabled $false
     Set-DedupSchedule -Name PriorityOptimization -Enabled $false
    
  2. Quite los trabajos actualmente programados Recolección de elementos no deseados y Limpieza de integridad.

     Get-DedupSchedule -Type GarbageCollection | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
     Get-DedupSchedule -Type Scrubbing | ForEach-Object { Remove-DedupSchedule -InputObject $_ }
    
  3. Cree una tarea nocturna de optimización que se ejecute a las 19:00, con prioridad alta y todas las CPU y memoria disponible en el 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")
    

    Nota

    La parte de fecha de System.Datetime proporcionada para -Start es irrelevante (mientras esté en el pasado), pero la parte de hora especifica cuándo debe comenzar el trabajo.

  4. Cree un trabajo semanal de recolección de elementos no deseados que se ejecuta el sábado desde las 7:00 con prioridad elevada y todas las CPU y memoria disponibles en el 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")
    
  5. Cree un trabajo semanal de limpieza de integridad que se ejecuta el domingo desde las 7:00 con prioridad elevada y con todas las CPU y memoria disponibles en el 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")
    

Configuración para todo el trabajo disponible

Puede alternar la siguiente configuración para los trabajos de Desduplicación de datos nuevos o programados:

Nombre de parámetro Definición Valores aceptados ¿Por qué se quiere establecer este valor?
Tipo El tipo de trabajo que se debe programar
  • Optimization
  • GarbageCollection
  • Scrubbing
Este valor es necesario porque es el tipo de trabajo que quiere programar. No se puede cambiar este valor después una vez programada la tarea.
Priority La prioridad del trabajo programado del sistema
  • Alto
  • Normal
  • Bajo
Este valor ayuda a que el sistema determinar cómo asignar el tiempo de CPU. High utilizará más tiempo de CPU, Low utilizará menos.
Días Los días en que los que el trabajo está programado Una matriz de enteros de 0 a 6 que representan los días de la semana:
  • 0 = Domingo
  • 1 = Lunes
  • 2 = Martes
  • 3 = Miércoles
  • 4 = Jueves
  • 5 = Viernes
  • 6 = Sábado
Las tareas programadas se tienen que ejecutar en al menos un día.
Núcleos El porcentaje de núcleos en el sistema que debe usar un trabajo Enteros de 0 a 100 (indica un porcentaje) Para controlar qué nivel de impacto tendrá un trabajo en los recursos de proceso en el sistema
DurationHours Número máximo de horas que puede ejecutarse un trabajo Números enteros positivos Para evitar que un trabajo se ejecute en horas de inactividad de la carga de trabajo
habilitado Si el trabajo se ejecuta Verdadero o falso Para deshabilitar un trabajo sin quitarlo
Completo Para programar un trabajo de recolección completa de elementos no utilizados Modificador (verdadero/falso) De forma predeterminada, cada cuarto trabajo es un trabajo de recolección completa de elementos no utilizados. Con este modificador, puede programar la recolección completa de elementos no utilizados con más frecuencia.
InputOutputThrottle Especifica la cantidad de limitación de entrada y salida aplicada al trabajo Enteros de 0 a 100 (indica un porcentaje) La limitación garantiza que los trabajos no interfieren con otros procesos intensivos de entrada y salida.
Memoria El porcentaje de memoria en el sistema que debe usar un trabajo Enteros de 0 a 100 (indica un porcentaje) Para controlar qué nivel de impacto tendrá un trabajo en los recursos de memoria del sistema
Nombre Nombre del trabajo programado String Un trabajo debe tener un nombre identificable de forma única.
ReadOnly Indica los informes y procesos de trabajo de limpieza en los daños que encuentra, pero no se ejecuta ninguna acción de reparación. Modificador (verdadero/falso) Quiere restaurar manualmente los archivos que residen en las secciones defectuosas del disco.
Inicio Especifica la hora en la que se debe iniciar un trabajo. System.DateTime La parte de fecha de System.Datetime proporcionada en Start es irrelevante (mientras esté en el pasado), pero la parte de hora especifica cuándo debe comenzar el trabajo.
StopWhenSystemBusy Especifica si debe detenerse Desduplicación de datos si el sistema está ocupado. Modificador (verdadero/falso) Este modificador le ofrece la capacidad de controlar el comportamiento de Desduplicación de datos. Esto es especialmente importante si desea ejecutar Desduplicación de datos mientras la carga de trabajo no esté inactiva.

Modificación de la configuración para todo el volumen de Desduplicación de datos

Alternancia de la configuración del volumen

Puede establecer la configuración predeterminada para todo el volumen para Desduplicación de datos a través del tipo de uso que se selecciona cuando se habilita la desduplicación para un volumen. Desduplicación de datos incluye cmdlets que facilitan la modificación de la configuración para todos los volúmenes:

Las razones principales para modificar la configuración de volumen desde el tipo de uso seleccionado son mejorar el rendimiento de lectura para archivos específicos (como multimedia u otros tipos de archivo que ya están comprimidos) u optimizar Desduplicación de datos para una mejor optimización de la carga de trabajo específica. En el ejemplo siguiente se muestra cómo modificar la configuración de volumen de Desduplicación de datos para una carga de trabajo que más se parece a una carga de trabajo de servidor de archivos de propósito general, pero utiliza archivos grandes que cambian con frecuencia.

  1. Vea la configuración actual del volumen para Volumen compartido de clúster 1.

     Get-DedupVolume -Volume C:\ClusterStorage\Volume1 | Select *
    
  2. Habilite OptimizePartialFiles en Volumen compartido de clúster 1 para que la directiva MinimumFileAge se aplique a las secciones del archivo en lugar de a todo el archivo. Esto garantiza que la mayor parte del archivo se optimice aunque secciones del archivo cambien regularmente.

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

Configuración para todo el volumen disponible

Nombre del valor Definición Valores aceptados ¿Por qué se quiere modificar este valor?
ChunkRedundancyThreshold El número de veces al que se hace referencia a un fragmento antes de que se duplique un fragmento en la sección de la zona activa del almacén de fragmentos. El valor de la sección de la zona activa es que los llamados fragmentos "activos" a los que se hace referencia con frecuencia tienen varias rutas de acceso para mejorar el tiempo de acceso. Números enteros positivos La razón principal para modificar este número es aumentar la velocidad del ahorro de volúmenes con desduplicación alta. En general, el valor predeterminado (100) es la configuración recomendada y no es necesario modificarlo.
ExcludeFileType Tipos de archivo que se excluyen de la optimización Matriz de extensiones de archivos Algunos tipos de archivo, especialmente multimedia o archivos que ya están comprimidos, no se beneficiarán mucho de la optimización. Esta configuración le permite configurar los tipos que se excluyen.
ExcludeFolder Especifica las rutas de acceso de la carpeta no deben considerarse para la optimización. Matriz de rutas de acceso de carpeta Si desea mejorar el rendimiento o impedir que el contenido en rutas de acceso particulares se optimice, puede excluir determinadas rutas de acceso en el volumen de la optimización.
InputOutputScale Especifica el nivel de la paralelización de E/S (colas de E/S) para que Desduplicación de datos la usará en un volumen durante un trabajo de procesamiento posterior. Números enteros positivos entre 1 y 36 La razón principal para modificar este valor es reducir el impacto en el rendimiento de una carga de trabajo de elevada E/S al restringir el número de colas de E/S que Desduplicación de datos puede usar en un volumen. Tenga en cuenta que la modificación de esta configuración predeterminada puede provocar que los trabajos de procesamiento posterior de Desduplicación de datos se ejecuten lentamente.
MinimumFileAgeDays Número de días después de crear el archivo antes de que el archivo se considere apto para la directiva de optimización. Números enteros positivos (incluido el cero) Los tipos de uso Predeterminado e Hyper-V establecen este valor en 3 para maximizar el rendimiento en los archivos activos o recientemente creados. Puede modificar este comportamiento si desea que Desduplicación de datos sea más agresivo o si no le importa la latencia adicional asociada con la desduplicación.
MinimumFileSize Tamaño mínimo de archivo que un archivo debe tener para considerarse apto para la directiva de optimización Enteros positivos (bytes) mayores de 32 kB La razón principal para cambiar este valor es excluir archivos pequeños que pueden haber limitado el valor de optimización para conservar el tiempo de proceso.
NoCompress Si los fragmentos se deben comprimir antes de pasar al almacén de fragmentos Verdadero/Falso Algunos tipos de archivos, especialmente archivos multimedia y tipos de archivos ya comprimidos, pueden no comprimirse bien. Esta configuración permite desactivar la compresión para todos los archivos del volumen. Esto sería ideal si se está optimizando un conjunto de datos que tiene una gran cantidad de archivos que ya están comprimidos.
NoCompressionFileType Tipos de archivo cuyos fragmentos no se deben comprimir antes de pasar al almacén de fragmentos Matriz de extensiones de archivos Algunos tipos de archivos, especialmente archivos multimedia y tipos de archivos ya comprimidos, pueden no comprimirse bien. Esta configuración permite que la compresión se desactive en esos archivos, ahorrando recursos de CPU.
OptimizeInUseFiles Cuando está habilitada esta opción, los archivos que tienen controladores activos en ellos se considerarán aptos para la directiva de optimización. Verdadero o falso Habilite esta opción si la carga de trabajo mantiene los archivos abiertos durante largos períodos. Si esta opción no está habilitada, el archivo nunca se podría optimizar si la carga de trabajo tiene un controlador abierto, incluso si solo anexa datos ocasionalmente al final.
OptimizePartialFiles Cuando está habilitada, el valor de MinimumFileAge se aplica a los segmentos de un archivo en lugar de todo el archivo. Verdadero o falso Habilite a esta opción si la carga de trabajo funciona con archivos grandes, a menudo archivos modificados en los que la mayor parte del contenido del archivo está sin tocar. Si esta opción no está habilitada, estos archivos no se optimizarán nunca porque conservan los cambios, aunque la mayor parte del contenido del archivo está listo para su optimización.
Comprobar Cuando se habilita, si el hash de un fragmento coincide con un fragmento que ya se encuentra en nuestro almacén de fragmentos, los fragmentos se comparan byte a byte para asegurarse de que son idénticos. Verdadero o falso Se trata de una característica de integridad que garantiza que el algoritmo hash que compara los fragmentos no comete un error al comparar dos fragmentos de datos que son realmente diferentes pero tienen el mismo valor hash. En la práctica, es muy improbable que esto ocurra. Si habilita la característica de comprobación, se agrega una sobrecarga considerable al trabajo de optimización.

Modificación de la configuración para todo el sistema de Desduplicación de datos

Desduplicación de datos tiene opciones adicionales para todo el sistema que se pueden configurar a través del Registro. Esta configuración se aplica a todos los trabajos y volúmenes que se ejecutan en el sistema. Deben extremarse las precauciones siempre que se modifique el Registro.

Por ejemplo, puede querer deshabilitar la recolección de elementos no utilizados completa. Para más información acerca de por qué puede resultar útil para el escenario, consulte las preguntas más frecuentes. Para editar el Registro con PowerShell:

  • Si Desduplicación de datos se ejecuta en un clúster:

      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
    
  • Si Desduplicación de datos no se ejecuta en un clúster:

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

Configuración para todo el sistema disponible

Nombre del valor Definición Valores aceptados ¿Por qué quiere cambiarlo?
WlmMemoryOverPercentThreshold Esta configuración permite que los trabajos utilicen más memoria que la que Desduplicación de datos considera que está disponible. Por ejemplo, un valor de 300 significaría que el trabajo tendría que usar tres veces la memoria asignada para cancelarse. Números enteros positivos (un valor de 300 significa 300 % o 3 veces) Si tiene otra tarea que se detendrá si Desduplicación de datos asume más memoria
DeepGCInterval Esta opción configura el intervalo en el que trabajos de recolección normal de elementos no utilizados se convierten en trabajos de recolección completa de elementos no utilizados. Un valor de n significa que cada n trabajos había un trabajo de recolección completa de elementos no utilizados. Tenga en cuenta que la recolección completa de elementos no utilizados siempre está deshabilitada (independientemente del valor del registro) para los volúmenes con el tipo de uso de copia de seguridad. Start-DedupJob -Type GarbageCollection -Full se puede usar si se quiere la recolección completa de elementos no utilizados en un volumen de copia de seguridad. Enteros (-1 indica deshabilitado) Consulte esta pregunta frecuente

Preguntas más frecuentes

He cambiado una configuración de Desduplicación de datos y ahora los trabajos son lentos o no terminan, o el rendimiento de mi carga de trabajo ha disminuido. ¿Por qué? Estas configuraciones le dan mucho poder para controlar cómo se ejecuta la Desduplicación de datos. Úselos de forma responsable y supervise el rendimiento.

Quiero ejecutar un trabajo de Desduplicación de datos ahora mismo, pero no quiero crear una nueva programación... ¿puedo hacerlo? Sí, todos los trabajos pueden ejecutarse manualmente.

¿Cuál es la diferencia entre la recolección de elementos no utilizados completa y normal? Hay dos tipos de recolección de elementos no utilizados:

  • Recolección normal de elementos no utilizados: utiliza un algoritmo estadístico para buscar grandes fragmentos sin referencia que cumplen unos criterios determinados (bajo en memoria e IOPs). La recolección normal de elementos no utilizados compacta un contenedor de almacenamiento de fragmentos solo si un porcentaje mínimo de los fragmentos está sin referencia. Este tipo de recolección de elementos no utilizados se ejecuta más rápido y consume menos recursos que la recolección completa de elementos no utilizados. La programación predeterminada del trabajo de recolección normal de elementos no utilizados es ejecutarlo una vez por semana.
  • La recolección completa de elementos no utilizados hace un trabajo mucho más profundo de búsqueda de fragmentos sin referencia y de liberación de más espacio en disco. La recolección completa de elementos no utilizados compacta cada contenedor, incluso si solo un único fragmento del contenedor no tiene referencia. La recolección de elementos no utilizados completa también liberará espacio que haya estado en uso si se produjo un error de alimentación o un bloqueo durante un trabajo de optimización. Los trabajos de recolección completa de elementos no utilizados recuperarán el 100 por ciento del espacio disponible que se puede recuperar en un volumen desduplicado a costa de requerir más tiempo y recursos del sistema en comparación con un trabajo de recolección normal de elementos no utilizados. El trabajo de recolección completa de elementos no utilizados normalmente encontrará y liberará hasta un 5 por ciento más de datos sin referencia que un trabajo de recolección normal de elementos no utilizados. La programación predeterminada del trabajo de recolección completa de elementos no utilizados consiste en ejecutarse cada cuarta vez que está programada la recolección de elementos no utilizados.

¿Por qué podría ser necesario deshabilitar la recolección completa de elementos no utilizados?

  • La recolección de elementos no utilizados podría afectar negativamente a las instantáneas del tiempo de vida del volumen y al tamaño de la copia de seguridad incremental. Las cargas de trabajo con una E/S intensiva o con una elevada renovación de código pueden ver una degradación del rendimiento en los trabajos de recolección completa de elementos no utilizados.
  • Puede ejecutar manualmente un trabajo de recolección completa de elementos no utilizados desde PowerShell para limpiar las fugas si sabe que se bloqueó el sistema.