INF: Descripción Bufwait y mensajes de tiempo de espera de WriteLog

Seleccione idioma Seleccione idioma
Id. de artículo: 167711 - Ver los productos a los que se aplica este artículo
Expandir todo | Contraer todo

Resumen

Al examinar el registro de errores de SQL Server, puede ver periódicamente los siguientes tipos de mensajes:
bufwait: tiempo de espera, BUF_IO, bp 0xd37ab0, AV 0x5e74e, 0x1008 stat/0x400003, obj 0x6d4f8c1b, bpss 0x2069e1f0
-o bien -
WriteLog: tiempo de espera, dbid 2, dbstat2 0x22(0x22), propietario de q1 y q2 0/1 = 3, waittype = 0 x 81
Este artículo explica el significado de los mensajes de tiempo de espera de bufwait y writelog.

Más información

SQL Server utiliza las E/s llamadas asincrónicas ReadFile(), ReadFileEx() WriteFile() y WriteFileEx() al realizar la lee y escribe. Estas llamadas a API Win32 enviar una solicitud de E/s a Windows NT Server y permita que la aplicación para continuar con otras operaciones mientras se espera la operación finalice. Al finalizar, indica la aplicación que ha completado la escritura por medio de una rutina de evento o la finalización de la sincronización.

Los mensajes de la bufwait y el logwrite son realmente advertencias y no será necesariamente un signo de cualquier problema con el equipo o SQL Server. Si SQL Server ha esperado más tiempo el número de segundos configurado en el 'tiempo de recursos espera' configuración (que de forma predeterminada es 10 segundos), se imprime un mensaje de error que indica el tiempo de espera. Sin embargo, debe continuar esperando en la solicitud de E/s para completar para que pueda continuar. El mensaje bufwait corresponde a un retraso en la lectura de una página del disco para poner en caché o volcar una página en caché de salida en el disco. El mensaje logwrite es específico de leer o escribir registros.

SQL Server utiliza los métodos de sincronización de subproceso normal para garantizar el acceso ordenado al registro de transacciones. En un mensaje de tiempo de espera writelog, el identificador de base de datos se suministra en el campo dbid, así como el identificador de proceso (propietario) de la otra conexión en el que está esperando. En el mensaje de ejemplo anterior, observe que el proceso actual estaba utilizando tempdb (dbid 2) y que está esperando en el proceso de punto de control (propietario = 3). Cuando investigue la causa de los tiempos de espera writelog, puede resultar beneficioso para periódicamente sysprocesses de consulta para recopilar información acerca de qué tipos de procesamiento se realizan por el spid "propietario" indicado en el mensaje writelog.

Deshacer gruesa actividad agrega adicionales del registro y contención de E/s de disco y dicha actividad se ha observado como contribuir a writelog tiempos de espera. Para obtener el mejor rendimiento, intente reducir el número de transacciones que deben deshacerse; como actividad en los aumentos de servidor, con el tiempo de espera de consulta es demasiado corta puede exacerbar aún más el problema haciendo clic en Deshacer innecesarios. Se agregó a partir de SQL Server 6.5 servicio Pack 2, una nueva opción de configuración, LogLRU búferes, que puede mejorar el rendimiento en entornos que requieren registro gruesa lecturas, como se necesitaría en procesamiento de un desencadenador o deshacer. Tenga en cuenta que con esta opción reserva espacio para almacenar las páginas de registro en caché, reduciendo la cantidad de caché de datos disponible. Consulte el archivo Readme.txt que se incluye en el service pack para obtener más información acerca de un valor óptimo para este parámetro.

Si estos mensajes aparecen de forma intermitente, no pueden ser indicativos de cualquier problema. Sin embargo, si aparecen con bastante regularidad, puede ser un signo de que el subsistema de disco está llegando a capacidad, y que pueden beneficiarse la propagación de la carga de E/s durante un número mayor de los controladores o discos, para reducir la longitud de tiempo que tiene que esperar para que completar la operación.

Para determinar qué cargar el subsistema de disco está controlando, puede utilizar Monitor de rendimiento para ver los contadores de disco adecuados para su sistema. Supervise el contador de tiempo de disco % para DiscoLógico y DiscoFísico que corresponden a los dispositivos de registro y de datos; si el valor es constantemente alto, considerar modos para repartir la carga de E/s y busque indicaciones de que el subsistema de disco está llegando a sus límites. Puede realizar adicionales ajuste utilizando el % tiempo de lectura de disco y % tiempo de escritura de disco contadores, que permitirían un mayor controlan en repartir la carga de E/s entre los discos y controladores. Un valor de longitud de cola de disco grande indica un registro grande en las solicitudes de E/s y desea investigar agregar más discos o cargar controladores adicionales para distribuir la E/s. Puede encontrar información adicional acerca de los contadores de disco en la documentación de Windows NT Server, el Kit de recursos de Windows Server y el siguiente artículo en Microsoft Knowledge Base:
102020: cómo supervisar el rendimiento de disco con el Monitor de rendimiento

Mientras estos mensajes como resultado de retraso en la realización de E/s, varios valores de configuración de SQL Server tienen un impacto directo en el rendimiento E/s general del sistema: máximo de E/s asincrónica; Máx. de E/s; logwrite sleep; y tiempo de espera de recursos.

El valor de configuración de 'max async E/s' determina que el número máximo de E/s asincrónica pendientes solicitudes que SQL Server permitirá, limitar al número de solicitudes pendientes. Cuando se realiza una solicitud de E/s asincrónica, Windows NT Server debe poner en cola la solicitud, que tiene un asociado sobrecarga. Mientras las solicitudes de E/s asincrónicas pueden aumentar el rendimiento cuando se utiliza correctamente, se puede alcanzar un límite de momento en que es posible que comience la opción de degradar el rendimiento del sistema de su uso posterior. Este límite depende en gran medida el controlador, controlador y el subsistema de disco asociada. Si constantemente se recibe cualquiera de los errores anteriores y se haya cambiado este valor de su valor predeterminado, se recomienda establecer se vuelve a su valor predeterminado.



El parámetro de 'max lazywrite E/s' está estrechamente relacionado con la configuración de 'max async E/s', pero específicamente limita el número de solicitudes pendientes realizados por el proceso de escritura diferida. El proceso de escritura diferida intenta vaciar las páginas modificadas desde la caché de disco para que siempre haya espacio libre en la caché de datos. La cantidad de espacio que el proceso intenta mantener libre se controla mediante la opción de configuración 'búferes'.

La opción de configuración 'logwrite sleep' es una opción de configuración avanzada que fuerza un retraso intencionado antes de escribir las páginas de registro en disco. Puesto que las páginas de registro deben confirmarse físicamente en el disco antes de realizan las modificaciones de datos, deberá generalmente estas escrituras en realizarse tan rápido como sea posible. En determinadas circunstancias, puede mejorar el rendimiento forzando intencionadamente un retraso para que varios procesos puedan "empaquetar" registros en una sola página y, por lo tanto, reducir el número de operaciones de escritura. La cantidad de tiempo utilizado en este retraso intencionada se cuenta como parte del período de tiempo de espera para la operación de escritura general, para que un tiempo de espera de writelog puede inducido artificialmente aumentando el valor de configuración 'logwrite sleep'. Sólo se deben realizar cambios en este valor de configuración de manera controlada, para asegurarse de que el rendimiento no se puede.



La opción de configuración de 'tiempo de espera recurso' controla el tiempo de espera global de las operaciones de E/s asincrónicas. De forma predeterminada, el valor se establece en 10 (segundos), por lo que cualquier operación que tarda más de 10 segundos para completar los resultados en una advertencia de tiempo de espera. Si este valor demasiado bajo pueden causar tiempos de espera en una hora corta unrealistically. Si con frecuencia recibes bufwait o writelog tiempos de espera, puede aumentar este valor para reducir la frecuencia con que se generan estos errores.

Porque SQL Server destaca el subsistema de E/s así ampliamente, también es importante comprobar que se está ejecutando con las versiones más recientes de la unidad y el firmware del controlador, así como el controlador más reciente. Consulte también el fabricante del hardware para los diagnósticos que pueden tener de esfuerzo del subsistema de disco.

Si la información anterior no ayuda a resolver el problema, quizás desee considerar el esfuerzo de sistema de forma similar al que realiza SQL Server. Para ayudarle a hacerlo, se ha escrito una utilidad denominada SQLHDTST. Para obtener más información acerca de la utilidad y las ubicaciones desde la que se puede descargar, consulte el artículo siguiente en Microsoft Knowledge Base:
178444Utilidad SQL Server archivos disponible
SQL Server requiere los sistemas admiten ? garantiza la entrega a medios estables ? como se describe en el programa de revisión de solución de almacenamiento de Microsoft SQL Server Always-On. FOPara obtener más información sobre los requisitos de entrada y salidos para el motor de base de datos de SQL Server, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
967576Microsoft SQL Server Database Engine E/s requisitos

Propiedades

Id. de artículo: 167711 - Última revisión: viernes, 21 de noviembre de 2003 - Versión: 3.1
La información de este artículo se refiere a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Palabras clave: 
kbmt kbenv kbhardware kbinfo KB167711 KbMtes
Traducción automática
IMPORTANTE: Este artículo ha sido traducido por un software de traducción automática de Microsoft (http://support.microsoft.com/gp/mtdetails) en lugar de un traductor humano. Microsoft le ofrece artículos traducidos por un traductor humano y artículos traducidos automáticamente para que tenga acceso en su propio idioma a todos los artículos de nuestra base de conocimientos (Knowledge Base). Sin embargo, los artículos traducidos automáticamente pueden contener errores en el vocabulario, la sintaxis o la gramática, como los que un extranjero podría cometer al hablar el idioma. Microsoft no se hace responsable de cualquier imprecisión, error o daño ocasionado por una mala traducción del contenido o como consecuencia de su utilización por nuestros clientes. Microsoft suele actualizar el software de traducción frecuentemente.
Haga clic aquí para ver el artículo original (en inglés): 167711
Renuncia a responsabilidad de los contenidos de la KB sobre productos a los que ya no se ofrece asistencia alguna
El presente artículo se escribió para productos para los que Microsoft ya no ofrece soporte técnico. Por tanto, el presente artículo se ofrece "tal cual" y no será actualizado.

Enviar comentarios

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com