Diagnósticos en SQL Server 2000 Service Pack 4 y en versiones posteriores ayudan a detectar operaciones de i/OS detenidas y atascadas

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

En esta página

Resumen

Un sistema de administración de base de datos (DBMS), por ejemplo, SQL Server, basa en la adecuación de archivos de entrada y salida (E/S) de las operaciones. Uno de los siguientes elementos puede crear atascado o detenido problemas de i/OS. Estos problemas rápidamente pueden tener un efecto adverso en el rendimiento y la capacidad de respuesta de SQL Server:
  • Hardware defectuoso
  • Hardware que no está configurado correctamente
  • Configuración de firmware
  • Controladores de filtro
  • Compresión
  • Errores
  • Otras condiciones en la ruta de acceso de i/OS
Estos problemas de i/OS pueden causar que se produzca el comportamiento siguiente:
  • Bloqueo de
  • Contención de bloqueo temporal y los tiempos de espera
  • Tiempo de respuesta lento
  • Ajusta el tamaño de los límites de recursos
A partir de Microsoft SQL Server 2000 Service Pack 4 (SP4), SQL Server incluye lógica que ayuda a detecta colgado y bloquea las condiciones para la base de datos i/OS lecturas y escrituras y lecturas de E/S de archivos de registro y escrituras. Cuando una operación de E/S ha estado pendiente durante 15 segundos o más, SQL Server lleva a cabo los pasos siguientes:
  1. Detecta que la operación ha estado pendiente.
  2. Escribe un mensaje informativo en el registro de errores de SQL Server. El texto del mensaje es similar al siguiente:

    2004-11-11 00:21:25.26 spid1 SQL Server ha encontrado 192 apariciones de la de las solicitudes de E/S tardando más de 15 segundos en completarse en [E:\SEDATA\stressdb5.ndf] del archivo de base de datos [stressdb] (7). El identificador de archivo del sistema operativo no es 0x00000000000074D4. El desplazamiento de las i/OS de mucho más reciente es: 0x00000000022000 ".

Explicación sobre mensajes informativos

Contraer esta tablaAmpliar esta tabla
Texto del mensajeDescripción
Número apariciones de laEl número de solicitudes de E/S que no se ha completado la operación de lectura o la escritura en menos de 15 segundos.
Información de archivoEl nombre de archivo completo, el nombre de base de datos y el número de identificación (DBID) de base de datos.
IdentificadorEl identificador del sistema operativo del archivo. Puede utilizar el identificador del sistema operativo con los depuradores o con otras utilidades para ayudar a realizar un seguimiento de las solicitudes de paquete (IRP) de solicitud de E/S.
DesplazamientoEl desplazamiento de la última operación de E/S de pegado o había bloqueado de la última operación de E/S. Puede utilizar el desplazamiento con los depuradores o con otras utilidades para ayudar a realizar un seguimiento de las solicitudes IRP.

Nota Cuando se escribe el mensaje informativo en el registro de errores de SQL Server, puede ya no se bloquea o detenida la operación de E/S.
Este mensaje informativo indica que la carga actual experimente una de las condiciones siguientes:
  • La carga de trabajo está superando las capacidades de ruta de acceso de i/OS.
  • La carga de trabajo está superando las capacidades del sistema actual.
  • La ruta de acceso de i/OS tiene software que no funciona correctamente; tal vez del firmware o un problema del controlador.
  • La ruta de acceso de i/OS tiene componentes de hardware que no funciona correctamente.
Para obtener más información acerca de los patrones de i/OS de SQL Server 2000, visite el siguiente sitio Web de Microsoft:
http://technet.Microsoft.com/en-us/library/cc966500.aspx

Más información

I/OS atascado y detenida i/OS

I/OS atascado

Atrapado i/OS se define como una solicitud de E/S que no se lleva a cabo. Con frecuencia, atascado i/OS es un IRP atascado. Para resolver una condición de i/OS atascada, normalmente, debe reiniciar el equipo o realizar una acción similar. Una condición de i/OS atascada suele indica uno de estos procedimientos:
  • Hardware defectuoso.
  • Un error en un componente de ruta de acceso de i/OS.

I/OS detenida

Detenida i/OS se define como una solicitud de E/S que se lleva a cabo. Sin embargo, la operación de E/S tarda excesivo tiempo en completarse. Comportamiento de i/OS detenida normalmente se produce debido a una de las siguientes razones:
  • La configuración de hardware.
  • Las opciones de firmware.
  • Un problema de controlador de filtro que solicita asistencia de hardware o con el proveedor de software para realizar un seguimiento y resolver.

SQL Server detenida la i/OS y detenidos i/OS registrar y realizar informes

Soporte técnico de Microsoft SQL Server trata a menudo cada año que implican problemas de i/OS atascados o detenidas. Tal como se describe más adelante, éstos de i/OS se muestran de diferentes maneras. Problemas de i/OS son algunos de los problemas más difíciles de diagnosticar y depurar. Problemas de i/OS requieren mucho tiempo y recursos para la depuración de Microsoft y del cliente. Las características de informes que se han agregado a SQL Server 2000 Service Pack 4 y en versiones posteriores significativamente reducen el tiempo que necesita para identificar un problema de i/OS.

Los informes y la grabación de las solicitudes de E/S están diseñados en uno por uno. La detección y la presentación de solicitudes de I/O detenidas y bloqueadas son dos acciones distintas.

Grabación

Existen dos ubicaciones en SQL Server donde se realizará la acción de registro. Se produce la primera ubicación en la grabación, es donde realmente finaliza la operación de E/S. Si una solicitud de E/S tarda más de 15 segundos en completarse, se produce una operación de registro. Se produce la segunda ubicación en la grabación, es cuando se ejecuta la escritura diferida. Cuando se ejecuta la escritura diferida, el escritor diferido comprueba que todos los datos pendientes y el registro pendiente las solicitudes de E/S de archivos. Si se ha superado el umbral de 15 segundos, se produce una operación de registro.

Presentación de informes

Esto se produce en intervalos son 5 minutos o más, separar. Esto se produce cuando se realiza la siguiente solicitud de i/OS en el archivo. Si se ha producido una acción de registro y han pasado 5 minutos o más desde que se produjo el último informe, el mensaje informativo que se menciona en la sección "Resumen" se escribe en el registro de errores de SQL Server.

El umbral de 15 segundos no es ajustable. Sin embargo, puede deshabilitar la detección de i/OS detenida y atascada usando el indicador de traza 830 pero no se recomienda que lo haga.

Para deshabilitar la detección cuando se inicia SQL Server, utilice el - parámetro de inicio de T830. Mediante la - T830 parámetro de inicio deshabilita la detección de cada vez que se inicie SQL Server. Para deshabilitar la detección de una instancia de SQL Server que se está ejecutando actualmente, utilice la siguiente instrucción:

DBCC traceoff (830, -1)

Esta configuración sólo es efectiva para la vida del proceso de SQL Server.

Nota Una solicitud de E/S que se convierte en bloqueado o bloqueada sólo se notifica una vez. Si el mensaje informa de que se detengan 10 solicitudes de i/OS, los 10 informes no volverá a producirse. Si el mensaje siguiente informa de que se detengan 15 las solicitudes de E/S, que significa que han paralizado durante 15 nuevas solicitudes de i/OS.

El paquete de solicitud de E/S (IRP) de seguimiento

SQL Server utiliza las llamadas de API de Windows de Microsoft estándar para leer y escribir datos. Por ejemplo, SQL Server utilizan las siguientes funciones:
  • Escritura de archivo
  • ReadFile
  • WriteFileScatter
  • ReadFileGather
La operación de lectura o la solicitud de escritura está controlada por Windows como un paquete de solicitud de E/S (IRP). Para determinar el estado de IRP, utilice los dos programas siguientes:
  • Asistencia de soporte de plataformas de Microsoft.
  • El depurador del núcleo.
Para obtener más información acerca de IRP y IRP seguimiento, visite el siguiente sitio Web de Microsoft y busque la palabra clave "IRP":
http://support.Microsoft.com
Nota Depuración del núcleo puede ser un proceso invasor debido a que la depuración del núcleo puede requerir que evitar que el sistema para completar las acciones de depuración. Se recomienda que verá si hay actualizaciones disponibles para los elementos siguientes:
  • El BIOS
  • El firmware
  • Cualquier otro componente de ruta de acceso de i/OS
Póngase en contacto con su proveedor de hardware antes de realizar las acciones de depuración adicionales. La sesión de depuración seguramente, incluirá un controlador de otro fabricante, firmware o un componente de controlador de filtro.

Rendimiento del sistema y las acciones del plan de consulta

En general el rendimiento del sistema puede desempeñar un papel clave en el procesamiento de i/OS. El estado general del sistema que debe tener en cuenta cuando se están investigando informes de las operaciones de i/OS detenidas o bloqueadas. Cargas excesivas pueden provocar que el sistema general de ser lento. Esto incluye el procesamiento de i/OS. El comportamiento del sistema cuando que se produce el problema puede ser un factor clave para determinar la causa del problema. Por ejemplo, si uso de CPU es alto o uso de la CPU se mantiene alto cuando se produce el problema, este comportamiento puede indicar que está usando un proceso en el sistema tanta CPU que otros procesos que se se ven perjudicadas.

Contadores de rendimiento

Para supervisar el rendimiento de i/OS, examine los siguientes contadores de rendimiento para obtener información de ruta de acceso específica de i/OS:
  • Promedio segundos/transferencia
  • Longitud media de cola de disco
  • Longitud de cola de disco actual
Por ejemplo, el tiempo promedio segundos/transferencia en un equipo que ejecuta SQL Server suele ser inferior a 15 milisegundos. Si se sube el valor promedio segundos/transferencia, esto indica que el subsistema de E/S es no óptimamente manteniendo con la demanda de i/OS.

Tenga cuidado con los contadores de rendimiento debido a que SQL Server aprovecha al máximo las capacidades de i/OS asincrónicas que aprovechan las longitudes de cola de disco mucho. Por lo tanto, disco colas más largas por sí solo no indican un problema.

En el Monitor de sistema de Windows, puede revisar los contadores de "disco físico: Bytes de disco/s" para cada uno se ve afectado, disco y comparar el nivel de actividad con respecto a los contadores de "proceso: datos de Bytes es/s" y "proceso: IO otros Bytes de disco/s" para que cada proceso identificar si un conjunto específico de procesos está generando excesivas i/OS solicita. Hay varios otros i/OS relacionados con los contadores disponibles en el proceso de objetos que revela información más detallada. Si decide que una instancia de SQL Server es responsable de excesiva carga de E/S en el servidor, revise la siguiente sección de "Índices y paralelismo". Para obtener información detallada sobre la detección y resolución de cuellos de botella de i/OS, revise la sección "Cuellos de botella de i/OS" en las notas del producto MSDN Solucionar problemas de rendimiento en SQL Server 2008 o Solucionar problemas de rendimiento en SQL Server 2005.

Los índices y el paralelismo

Con frecuencia, las ráfagas de i/OS se producen porque falta un índice. Este comportamiento puede insertar la ruta de acceso de i/OS mucho. Un paso con el índice al Asistente para programar puede ayudar a resolver la presión de i/OS en el sistema. Si una consulta se beneficia de un índice en lugar de hacerlo desde un recorrido de tabla o tal vez incluso utiliza una ordenación o hash, el sistema puede aprovechar las ventajas siguientes:
  • Reducción de operaciones de E/S físicas para completar la acción que coincida con directamente a las prestaciones de rendimiento para la consulta.
  • Menos páginas en la caché de datos tienen que entregarse. Por lo tanto, las páginas que se encuentran en la caché de datos siempre relacionadas con consultas activas.
  • Criterios de ordenación y hash se utilizan debido a que un índice puede no aparecer o debido a que las estadísticas no están actualizadas. Puede reducir el uso de tempdb y la contención agregando uno o varios índices.
  • Una reducción de los recursos, una reducción de operaciones en paralelo o ambos. Dado que SQL Server no garantiza la ejecución de consultas en paralelo y debido a que se considera que la carga en el sistema, es mejor optimizar todas las consultas de ejecución en serie. Para optimizar una consulta, abra el analizador de consultas y establezca el valor de sp_configure de la opción max degree of parallelism en 1. Si se ajustan todas las consultas para ejecutar rápidamente como una operación de serie, paralelos de ejecución suele ser simplemente un mejor resultado. Sin embargo, muchas veces ejecución en paralelo se selecciona porque la cantidad de datos es sólo el tamaño. Para un índice perdido, una especie de gran tamaño que tenga que producirse. Varios trabajadores que están llevando a cabo la operación de ordenación crean una respuesta más rápida. Sin embargo, esta acción puede aumentar drásticamente la presión en el sistema. Solicitudes de lectura grandes de muchos empleados, pueden provocar un ráfagas de i/OS junto con un mayor uso de CPU de varios trabajadores. Muchas veces una consulta puede se optimiza para ejecutarse con mayor rapidez y utilice menos recursos si se agrega un índice o si se produce otra acción ajuste.

Ejemplos prácticos de soporte técnico de Microsoft SQL Server

En los ejemplos siguientes han sido controlados por soporte técnico de Microsoft SQL Server y soporte técnico de escalamiento de plataformas. En estos ejemplos se pretenden proporcionar un marco de referencia y un conjunto de ayuda sus expectativas sobre bloqueado y había pegado situaciones de i/OS y acerca de cómo un sistema puede verse afectado o puede responder. No hay ningún hardware específico o un conjunto de controladores que suponer ningún riesgo específico o el aumento del riesgo con respecto a otro. Todos los sistemas son los mismos a este respecto.

Ejemplo 1: Una escritura en el registro que está retenido durante 45 segundos

Periódicamente, un intento de escritura de archivo de registro de SQL Server se convirtió en estancada durante aproximadamente 45 segundos. La escritura en el registro no era acabado de manera oportuna. Este comportamiento producía una condición de bloqueo que condujo a los tiempos de espera de cliente de 30 segundos.

Presente la solicitud una confirmación a SQL Server y la confirmación se convirtió en detenidos como una escritura en el registro pendiente. Este comportamiento debe la consulta para continuar reteniendo bloqueos y bloquear las solicitudes entrantes de otros clientes. A continuación, otros clientes se inicia a tiempo de espera. Esto agrava el problema debido a que la aplicación no se diseñó para deshacer las transacciones abiertas cuando consulta agotó el tiempo. Se producía cientos de las transacciones abiertas que se bloquean. Por lo tanto, se ha producido una grave situación de bloqueo.

Para obtener más información acerca de la transacción de control y el bloqueo, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
224453Descripción y solución de problemas de bloqueo de 2000 o SQL Server 7.0
La aplicación el mantenimiento de un sitio Web mediante la agrupación de conexiones. Ya que se convirtió en bloqueado más conexiones, el sitio Web creado más conexiones. Estas conexiones se convirtió en bloqueado y el ciclo continúa.

Después de aproximadamente 45 segundos, puede completar la escritura en el registro. Sin embargo, hasta el momento, cientos de conexiones se copia de seguridad. Los problemas de bloqueo resultaron en varios minutos de tiempo de recuperación de SQL Server y de la aplicación. Cuando se combina con los problemas de aplicación, la condición de i/OS detenida tenía un efecto muy negativo en el sistema.
Resolución
El problema se realizaba el seguimiento a una solicitud de i/OS atrapada en un controlador de adaptador de Bus de Host (HBA). El equipo tiene varias tarjetas HBA con compatibilidad para conmutación por error. Cuando un HBA fue detrás o no se comunica con la red de área de almacenamiento (SAN), el valor de tiempo de espera de "estado Reintentar antes de conmutación por error" se establece en 45 segundos. Cuando se ha superado el tiempo de espera, la solicitud de E/S se enrutó al segundo HBA. El segundo HBA controla la solicitud y terminado de forma rápida. Para ayudar a evitar tales condiciones de detención, el fabricante del hardware recomienda un valor de "antes de conmutación por error reintento" de 5 segundos.

Ejemplo 2: Intervención de controlador de filtro

Muchos programas de software antivirus y productos de copia de seguridad utilizan controladores de filtro de i/OS. Estos controladores de filtro de i/OS pasan a formar parte de la pila de solicitudes de i/OS y que tienen acceso a la solicitud IRP. Microsoft Product Support Services ha visto varios problemas de los errores que crean quedarse bloqueadas las condiciones de i/OS o bloqueado las condiciones de i/OS en una implementación de controlador de filtro.

Una condición fue un controlador de filtro para el procesamiento de copia de seguridad permite una copia de seguridad de los archivos que estaban abiertos cuando se produjo la copia de seguridad. El administrador del sistema había incluido el directorio de archivos de datos de SQL Server en las selecciones de copia de seguridad de archivos. Cuando se ha producido la copia de seguridad, la copia de seguridad se prueban recopilar la imagen correcta del archivo a la vez que inicie la copia de seguridad. Esto retrasa las solicitudes de E/S. Las solicitudes de I/O podían Complete sólo uno tras otro mientras se manejaban desde el software.

Cuando se inicia la copia de seguridad, rendimiento de SQL Server caído considerablemente debido a que las operaciones de E/s de SQL Server se veían obligados a completar uno tras otro. Para aumentar el problema, la lógica de "uno a la vez" era tal que la operación de E/S podría no realizarse de forma asincrónica. Por lo tanto, cuando SQL Server espera para registrar una solicitud de E/S y para continuar, el trabajador se bloqueó en la operación de lectura o la llamada de escritura hasta que finalice la solicitud de E/S. Las tareas de procesamiento como una de SQL Server lectura anticipada eficazmente deshabilitadas por las acciones del controlador de filtro. Además, otro error en el controlador de filtro las acciones "uno a la vez" en proceso, incluso cuando en la copia de seguridad se ha finalizado. La única manera de recuperar el rendimiento de SQL Server era cerrar y, a continuación, vuelva a abrir la base de datos o reiniciar SQL Server para que el identificador de archivo se ha publicado y se volvió a adquirir sin la interacción de controlador de filtro.
Resolución
Para resolver este problema, se han quitado los archivos de datos de SQL Server desde el proceso de copia de seguridad de archivos. El fabricante del software también se ha corregido el problema que deja el archivo en modo de "uno a la vez".

Ejemplo 3: Ocultar errores

Muchos sistemas de extremo superiores tienen multicanales paths de i/OS para controlar el equilibrio de carga o actividades similares. Soporte técnico de Microsoft ha encontrado problemas con el software que se produce un error en una solicitud de E/S, pero el software no controla correctamente la condición de error de equilibrio de carga. El software puede tratar de intentos infinitos. Queda detenida la operación de E/S y de SQL Server no puede terminar la acción especificada. Mucho al igual que el registro de escribir la condición de que se describió anteriormente, muchos comportamientos de deficiente del sistema se pueden producir después de dicha condición de trozos del sistema.
Resolución
Para resolver este problema, a menudo es necesario reiniciar SQL Server. Sin embargo, a veces, debe reiniciar el sistema operativo para restaurar el procesamiento. También se recomienda obtener una actualización de software en el proveedor de i/OS.

Ejemplo 4: Unidades de almacenamiento remoto, el reflejo y Raid

Muchos sistemas utilizan el reflejo o seguir pasos similares para evitar la pérdida de datos. Son algunos de los sistemas que utilizan reflejo de software de base y otros componentes de hardware. La situación normalmente descubierta por servicios de soporte técnico para estos sistemas es mayor latencia.

Un aumento en el tiempo total de i/OS se produce cuando se debe completar las i/OS a la duplicación antes de que las i/OS se pueda considerar finalizada. Para las instalaciones de espejado remoto, pueden intervenir reintentos de red. Cuando se producen errores de unidad y volver a generar el sistema de raid, también se puede interrumpir el patrón de E/S.
Resolución
Opciones de configuración estricto son necesarios para reducir la latencia a copias espejadas o a las operaciones de reconstrucción de raid.

Ejemplo 5: compresión

Microsoft no es compatible con Microsoft SQL Server 7.0 o los archivos de datos de Microsoft SQL Server 2000 y los archivos de registro en unidades comprimidas. Compresión NTFS no es segura para SQL Server debido a que la compresión NTFS saltos de protocolo de escribir registro por adelantado (WAL). Compresión NTFS también requiere un mayor procesamiento para cada operación de E/S. Compresión creará "a la vez" como el comportamiento que hace que otros problemas graves de rendimiento.
Resolución
Para resolver este problema, debe descomprimir los datos y los archivos de registro.

Puntos de datos adicionales

La información de tipo de espera que se proporciona en la tabla del sistema sysprocesses puede ser útil para diagnosticar cuellos de botella de i/OS. Tipos de espera de pestillos de i/OS de búfer y writelog waits son indicadores clave para investigar el rendimiento de E/S de ruta de acceso.

Para obtener más información acerca de los tipos de espera, haga clic en el número de artículo siguiente para verlo en Microsoft Knowledge Base:
822101Descripción de las columnas de lastwaittype y waittype en la tabla master.dbo.sysprocesses en SQL Server 2000 y SQL Server 2005

Referencias

231619 Cómo emplear la utilidad de SQLIOStress hacer hincapié en un subsistema de disco, como SQL Server
826433 SQL Server agregados diagnósticos adicionales para detectar problemas de E/S no
230785 Algoritmos de almacenamiento de datos y registro de SQL Server 7.0, SQL Server 2000 y SQL Server 2005 amplían la confiabilidad de los datos
SQL Server requiere sistemas para soportar "entrega garantizada a medios estables" tal como se describe en el programa de revisión de solución de almacenamiento de información de Microsoft SQL Server Always-On. FOPara obtener más información acerca de 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:
967576Requisitos de entrada/salida del motor de base de datos de Microsoft SQL Server

Propiedades

Id. de artículo: 897284 - Última revisión: domingo, 16 de diciembre de 2012 - Versión: 5.0
La información de este artículo se refiere a:
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Palabras clave: 
kbinfo kbtshoot kbsqlserv2000sp4fea kbmt KB897284 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): 897284

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