sql >> Base de Datos >  >> RDS >> Sqlserver

Solucionar problemas de cuellos de botella de E/S de disco

¿Su servidor sufre un número excesivo de alertas de E/S? Si es así, ¿debería preocuparse por la degradación del rendimiento del servidor? ¿Cómo diagnosticar mejor el problema subyacente y eliminar los cuellos de botella de E/S?

La alarma de tiempo de bloqueo de E/S de Spotlight Cloud es un buen indicador de cuellos de botella de E/S. Se genera cuando el tiempo de espera promedio por operación de un archivo de base de datos supera el umbral de alarma. La alarma utiliza datos de sys.dm_io_virtual_file_stats DMV para sus cálculos. Utiliza un valor promedio obtenido después de cinco recopilaciones en los últimos 15 minutos para que no reciba alertas sobre un pico ocasional. La descripción de la alarma incluye el nombre del archivo virtual de la base de datos, el nombre de la base de datos y la cantidad promedio de tiempo de espera por operación de E/S.

Cuatro sencillas sugerencias para diagnosticar problemas relacionados con E/S en Spotlight Cloud:

1. Compruebe qué está contribuyendo al consumo de E/S.

El consumo de E/S es un signo de la latencia de los subsistemas de disco que podría deberse a la presión de la memoria o de la CPU, las consultas mal escritas o la falta de una buena combinación de índices. En el momento de la alarma:

En primer lugar, aproveche el panel lateral derecho Propiedades de la página Alarmas para ver los datos relacionados con las alarmas inteligentes:
1. Detalles de la alarma, incluido el nombre del archivo, el tiempo promedio de espera de E/S en el archivo y la duración de la alarma

2. Analice los datos recopilados representados en el gráfico de tendencias durante las últimas horas



A continuación, diagnostique el problema presionando el botón Diagnosticar. Eso lo llevará al tablero de E/S por archivo enfocado en el archivo estresado. Puede usar este y otros paneles para diagnosticar más:

1. E/S por archivo:identifique los archivos directamente afectados por la E/S
2. Analizador de carga de trabajo:las principales declaraciones de SQL y el lote de TSQL que consumen la mayor cantidad de E/S
3. Sesiones:sesiones en el punto de tiempo con actividad en el disco
4. Comprobación de estado:revise si faltan índices


2. Verifique los archivos que están esperando operaciones de E/S.

El panel de E/S por archivo identifica los archivos que esperan operaciones de E/S. Examine las siguientes estadísticas de E/S:
1. Tome nota de las columnas relacionadas con E/S:tasas de E/S, tasas de lectura/escritura y tasas de espera

2. Ordene los archivos por su espera promedio por /IO presionando en la lista desplegable azul directamente arriba de la columna Archivo lógico.

3. Vea la actividad de lectura y escritura en la última hora generada en el archivo que se muestra en los paneles de la derecha.

4. Opcionalmente, expanda el marco de tiempo para verificar si este es un comportamiento normal en el archivo.

5. Si ve una cantidad de archivos con el tiempo que sufren el mismo problema y comparten la ubicación o el disco, considere ajustar su ubicación y compare la contención de E/S entre discos o ubicaciones para aliviar los problemas de latencia del disco.


6. En caso de que los archivos de la base de datos de Tempdb sean un factor destacado, use el panel de uso de TempDB para ver la actividad en la base de datos:

una. Archivos de base de datos tempdb y sus estadísticas
b. Sesiones que utilizan tempdb
C. Principales tablas e índices creados en tempdb



3. Busque sentencias SQL que puedan estar realizando grandes cantidades de E/S lógicas.

El panel de control de Workload Analyzer muestra el SQL que más consume E/S:

1. Haga clic en el recurso de E/S en el banner superior y expanda el nodo Sentencia SQL del árbol de dimensiones para ver las 25 E/S principales que consumen SQL durante el período de tiempo.

2. Concéntrese en una declaración y expanda el panel Propiedades de la declaración SQL en el lado derecho para ver los detalles del plan de consulta y SQL.

3. Cargue la declaración SQL en SSMS usando la opción 'Abrir en SSMS' y use la herramienta de complemento Tuning Pack para analizar el plan o hacer que reescriba una declaración más óptima.


4. Concéntrese en el nodo 'Declaración SQL' del árbol Dimensiones para enumerar las declaraciones SQL. Ordene las sesiones por espera de E/S o lecturas lógicas. Utilice el panel Comparar con principal a la derecha para comparar la espera de E/S de un único SQL con el resto del SQL en la instancia que ocupa la E/S. La E/S lógica puede resultar en una E/S física innecesaria.


4. Compruebe qué sesiones de SQL Server están generando grandes cantidades de actividad en el disco.

El panel de Sesiones muestra las sesiones abiertas en la instancia. Para ver las sesiones que generan grandes cantidades de actividad en el disco, verifique las estadísticas relacionadas con E/S y ordene por ellas.
1. Las estadísticas relacionadas con la E/S lo orientan en la dirección correcta:E/S total, lecturas lógicas, lecturas físicas y solicitud de E/S

2. El panel del lado derecho de la pestaña Sesión muestra estadísticas adicionales junto con el SQL subyacente



Utilice el panel Tempdb para ver sesiones utilizando la base de datos Tempdb:
1. Use el tablero de Tempdb para identificar las sesiones y los objetos que utilizan la base de datos

2. Utilice el panel de uso de Tempdb para ver todas las sesiones durante un período


¡Hágase cargo de la latencia de E/S aprovechando las capacidades de diagnóstico de Spotlight Cloud!