Rendimiento del disco lento cuando está habilitada la caché de escritura

Síntomas

Espera que el rendimiento de cierta escritura de disco duro operaciones pueden ser más lentas que si el disco duro implementa el almacenamiento en caché de escritura y el equipo utiliza cualquiera de los siguientes sistemas operativos:
  • Windows 2000 Service Pack 3 (SP3)
  • Windows 2000 Service Pack 2 (SP2) en el que ha instalado el hotfix que se describe en el siguiente artículo de Microsoft Knowledge Base:
    281672 posible pérdida de datos después de habilitar la característica "Caché de escritura habilitada"
  • Windows XP
En concreto, el rendimiento de escritura del disco duro puede ser más lento que decir experimentados con versiones de Windows 2000 anteriores a SP3. Además, en un equipo del clúster, operaciones de escritura de disco en discos compartidos pueden provocar grandes diferencias en el rendimiento de escritura entre cada nodo.

Causa

Versiones anteriores a SP3 de Windows 2000 contienen un error que impide que ciertos comandos de disco que se esté emitiendo. Estos comandos sólo se emiten a los discos que tienen habilitada la caché de escritura. Estos comandos forzar datos críticos que se escriban en dispositivos de disco inmediatamente en lugar de retenidos temporalmente en la caché de escritura del disco.

Para obtener información adicional acerca de este error, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
281672 posible pérdida de datos después de habilitar la característica "Caché de escritura habilitada"

La revisión que se describe en artículo de Knowledge Base 281672 corrige este error y hace que estos comandos que deben emitirse para el disco como se esperaba cuando está habilitada la caché de escritura. Esta revisión se incluye en Windows 2000 SP3. También se incluye una corrección similar en Windows XP.

Por diseño, estos comandos sacrifican la performance en aras de la seguridad de los datos críticos. Se aseguran de que los datos críticos se escriben en el disco inmediatamente. Estos comandos se emiten sólo si está habilitada la caché de escritura para un dispositivo de disco específico y puede ser detectada mediante mecanismos estándares. Cuando se aplica este comportamiento seguro para los discos que implementan el almacenamiento en caché de escritura, experimentará pérdida de rendimiento durante determinadas operaciones de disco. Consulte la sección "Más información" de este artículo para obtener más detalles. Además, en un equipo de clúster, información de disco duro puede no entregarse a un nodo que tiene sobre un recurso de clúster cuando se conmuta el recurso. Por lo tanto, se produce diferencias en el rendimiento de la operación de escritura del disco duro entre cada nodo.

Solución

Para equipos que ejecutan Windows 2000

Advertencia: Si implementa esta revisión (al instalar a los controladores actualizados y activar la opción de caché de escritura Protegida por alimentación ), se quitan las protecciones que están integradas en los controladores de disco de Windows 2000 para asegurarse de que los datos críticos se escriben en el disco inmediatamente en lugar de escribirse en el disco más adelante de caché integrado del disco. No implemente esta revisión a menos que el equipo y los discos duros conectados estén protegidos contra la pérdida de alimentación accidental o inadvertida mediante diseño de hardware que puede incluir características como fuentes de alimentación redundantes con respaldo de batería. Póngase en contacto con los proveedores de los dispositivos de almacenamiento de información y equipo para determinar el grado de protección permitido por el hardware. No implemente esta revisión a menos que entienda y acepte el nivel de riesgo que puede estar implicados y está seguro de que se ha mitigado este riesgo mediante la protección de alimentación de hardware adecuado. Además, en un equipo del clúster, diferencias en el rendimiento de escritura de disco duro operaciones a discos compartidos entre los nodos pueden resolverse estableciendo la Protegida por alimentación escriben la opción caché en cada nodo.

Para obtener información adicional, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
281672 posible pérdida de datos después de habilitar la característica "Caché de escritura habilitada"

Parte 1: Instale la actualización de Windows 2000

Está disponible en Microsoft una característica compatible que modifica el comportamiento predeterminado del producto. Sin embargo, esta característica está diseñada para modificar sólo el comportamiento que se describe en este artículo. Aplíquela sólo a sistemas que la requieran.

Si la característica está disponible para su descarga, hay una sección de "Descarga de revisión disponible" en la parte superior de este artículo de Knowledge Base. Si esta sección no aparece, póngase en contacto con el servicio al cliente de Microsoft y soporte técnico para obtener la característica.

Nota: Si se producen problemas adicionales o si se requiere cualquier otra solución, será necesario crear una solicitud de revisión independiente. Los costos habituales de soporte se aplicarán a las preguntas de soporte técnico adicionales y problemas que no califica para esta característica específica. Para obtener una lista completa de los números de teléfono de servicio al cliente de Microsoft o para crear una solicitud de servicio independiente, visite el siguiente sitio Web de Microsoft:Nota: El formulario de "Descarga de revisión disponible" muestra los idiomas para los que la característica está disponible. Si no ve su idioma, es porque la característica no está disponible para ese idioma. La versión en inglés de esta revisión tiene los atributos de archivo (o posterior) que figuran en la tabla siguiente. Las fechas y horas de estos archivos se muestran en hora universal coordinada (UTC). Al ver la información del archivo, se convierte en hora local. Para encontrar la diferencia entre la hora UTC y la hora local, utilice la ficha zona horaria en la herramienta fecha y hora del Panel de Control.
   Date         Time   Version        Size    File name
-------------------------------------------------------
15-Jan-2003 19:42 5.0.2195.6655 34,832 Classpnp.sys
15-Jan-2003 19:43 5.0.2195.6655 30,768 Disk.sys

Nota: Los archivos que se incluyen en este hotfix tienen números de versión de post-SP3, pero pueden utilizarse en equipos basados en Windows 2000 SP2 y basado en el SP3 de Windows. Se instalará el paquete de revisiones en equipos basados en Windows 2000 SP2 y basado en Windows 2000 SP3.

Parte 2: Configurar la opción de caché de escritura "Protegida por alimentación"

Después de instalar la actualización de Windows 2000 y, a continuación, reinicie el equipo para que los controladores actualizados están cargados, que también debe activar la opción de caché de escritura Protegida por alimentación para cada disco que tiene la escritura caché habilitada y tiene su caché de escritura protegidos contra la pérdida accidental de alimentación. Si no se activa la opción de caché de escritura Protegida por alimentación , esta actualización implementar cualquier cambio en el comportamiento de disco o el rendimiento.

Para configurar el
Opción de caché de escritura Protegida por alimentación en los discos seleccionados, utilice la herramienta Dskcache.exe. Dskcache.exe está disponible por separado. Para obtener información adicional acerca de la herramienta Dskcache.exe y cómo habilitar "power protected" opción de caché de escritura, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
811392 obtener la herramienta Dskcache.exe para configurar la opción de caché de escritura "Protegida por alimentación"
Nota: La opción de caché de escritura Protegida por alimentación sólo puede habilitarse para los discos que están actualmente presentes. De forma predeterminada, está deshabilitada la opción de caché de escritura Protegida por alimentación . Como resultado, esta opción estará deshabilitada para todos los discos que se agreguen después de aplicar esta configuración. Si se agregan discos adicionales, habilitar la opción de caché de escritura Protegida por alimentación para esos discos agregados para que la configuración surta efecto.

Para equipos que ejecutan Windows XP

Debido a las diferencias de diseño entre Windows 2000 y Windows XP, actualmente no hay planes para lanzar una actualización compatible para este comportamiento para Windows XP.

Estado

Este comportamiento es por diseño.

Más información

Muchos dispositivos de disco ofrecen un rendimiento mejorado mediante el uso de una caché integrada, que proporciona almacenamiento en caché de lectura anticipada de los datos que se leen desde el disco y el almacenamiento en caché de escritura en segundo plano (o retrasadas escrituras o escrituras "lenta") para los datos que se escriben en el disco. En algunos casos, es importante que los datos se escriben inmediatamente en el disco físico y no se conserva en la caché de escritura integrado del disco se escriban más adelante durante un momento de inactividad en caso contrario. Esto previene la pérdida o corrupción de datos si el disco o controlador (donde se implementa la memoria caché de escritura) de repente se apaga, por ejemplo.

Hay dos comandos que se utilizan normalmente para forzar los datos almacenados en caché se escriben en el disco físico de inmediato:
  • Un comando de vaciado de los buffers , que está disponible para los dispositivos de disco SCSI e IDE/ATAPI, indica el disco para escribir todos los datos en el disco inmediatamente. Para discos SCSI, esto se implementa mediante el comando Sincronizar la caché en el disco. Los discos IDE/ATAPI, se envía el comando FLUSH CACHE en el disco. Normalmente, este comando se emite como resultado de un programa de Windows llamando a la API FlushFileBuffers . Escribir en el registro es un ejemplo de una operación que envían los resultados en la API que se llama FlushFileBuffers y el comando Sincronizar la caché en el disco.
  • Un comando Write Through , que sólo está disponible para los dispositivos de disco SCSI, se implementa mediante la emisión de un comando de escritura en el disco con el conjunto de bits ForceUnitAccess (FUA). Este tipo de comando indica el disco para escribir el paquete actual de datos en el disco inmediatamente, omitiendo la caché de escritura incorporado. Esto suele ocurrir como resultado de un programa de Windows que llama a la API WriteFile para escribir en un archivo que abrió llamando el CreateFile API con el indicador FILE_FLAG_WRITE_THROUGH establecido. Antivirus software normalmente abre archivos con el indicador FILE_FLAG_WRITE_THROUGH establecido. Soporte para el bit FUA es opcional y sólo algunos dispositivos SCSI y de canal de fibra (FC), las unidades individuales normalmente (en oposición a las matrices de RAID), implementar esta funcionalidad.
Por diseño, estos comandos sacrifiquen una medida de rendimiento (que normalmente proporcionaría caché de escritura integrado del disco) para mantener la seguridad de los datos que se está escribiendo en el disco. Si dichos datos no se escriben en el disco inmediatamente por estos comandos, y si el disco apaga repentinamente, esos datos se pierden, y puede dañar el archivo que se está escribiendo.

En las versiones de Windows 2000 anteriores a SP3, estos comandos no emite correctamente en dispositivos de disco cuando se esperaba. Por ejemplo, el comando Sincronizar CACHE no se emite a un disco cuando un programa llama FlushFileBuffersy no se establece el bit FUA para escribir los comandos cuando se abre el archivo con FILE_FLAG_WRITE_THROUGH establecido. La revisión que se describe en artículo de Knowledge Base 281672 corrige este problema, para que estos comandos se emiten como se pretendía y, como resultado, proporcionan la protección esperada contra la pérdida de estos datos críticos.

Note
Microsoft SQL Server utiliza FILE_FLAG_WRITE_THROUGH ampliamente en los datos de la base de datos local, los archivos de registro y los archivos de copia de seguridad. Datos de la base de datos local pueden incluir datos en unidades SCSI y SAN, pero no los datos en unidades NAS. Si no está habilitada la característica de almacenamiento protegido de energía en el hardware que protege su caché de escritura, el rendimiento de SQL Server puede verse afectado durante el proceso de punto de comprobación de bases de datos grandes.

Cuando se configura la opción de Caché de escritura habilitada para un dispositivo de disco en el Administrador de dispositivos, ocurren dos cosas:
  • Se envía un comando para activar o desactivar el caché de escritura en el dispositivo de disco.
  • Se guarda un valor del registro, que el controlador de disco se utiliza para determinar si se debe o no emitir comandos de administración de la caché de escritura (Write-Through, vaciado) en el disco.
La revisión que se describe en este artículo proporciona una opción de configuración adicional, que es la opción de caché de escritura Protegida por alimentación . Cuando se activan las Caché de escritura Protegida por alimentación opciones y en, memoria caché de escritura del disco está habilitada y reconocido como tales por el controlador de disco, pero el controlador de disco no emite comandos de administración de la caché de escritura (Write-Through, vaciado) en el disco. Esto evita la disminución de rendimiento que se incurriría si vaciando los datos de la caché de escritura en el disco, pero expone un riesgo de pérdida o corrupción de datos del disco si se pierde una vez allí la alimentación todavía datos en memoria caché de escritura del disco que no se ha escrito en disco.

En la tabla siguiente se resume los efectos de las opciones de Caché de escritura y Protegida por alimentación :
La caché de escrituraAlimentación protegida
Efecto
DeshabilitadoN/ADisco no almacena en caché escrituras.

Controlador no emite comandos Flush/Write-Through.
(Sólo posible para las unidades que no tienen comportamiento caché de escritura habilitada en hardware.)
HabilitadoDeshabilitadoEscrituras de las cachés de disco.

Controlador emite comandos Flush/Write-Through.
(Valor predeterminado de comportamiento a partir de SP3, y con esta actualización aplicada, en las unidades que dispone de la caché de escritura habilitada en hardware).
HabilitadoHabilitadoEscrituras de las cachés de disco.

Controlador no emite comandos Flush/Write-Through.
(Comportamiento resultante de error anterior al SP3, en las unidades que tiene caché de escritura habilitada en hardware.)
Propiedades

Id. de artículo: 332023 - Última revisión: 17 ene. 2017 - Revisión: 1

Comentarios