SQL Server 2008 R2 High Buffer I / O causas

8

Estoy tratando de solucionar problemas de rendimiento en un servidor SQL que tenemos para nuestro servidor de administración de documentos y hoy el rendimiento ha alcanzado un mínimo histórico.

Mirando el Management Data Warehouse (MDW) que configuré recientemente, puedo ver un gran aumento en el Buffer I / O. El tiempo de espera combinado de SQL está en la región de 1500-2000 ms, que es considerablemente más alto de lo normal (alrededor de 500 ms). La gran proporción de este aumento es Buffer I / O.

No siendo un DBA y haciendo esto por necesidad, estoy enormemente fuera de mi alcance.

¿Hay alguna manera de saber por qué ha habido un gran aumento en la E / S de búfer? ¿Es probable esto debido a una consulta que extrae grandes cantidades de datos o una configuración incorrecta de los límites de memoria de SQL Server? ¿Hay algo específico (o general para el caso) que debería mirar o DMV que pueda consultar para ayudar a solucionar problemas?

El servidor es SQL Server 2008 R2. Es una máquina virtual que ejecuta dos vCPU y 8 GB de RAM con los discos alojados en una matriz separada en una SAN.

ingrese la descripción de la imagen aquí

Los gráficos anteriores se generaron utilizando el Almacén de datos de administración de SQL Server .

Tim Alexander
fuente

Respuestas:

9

Si observa detenidamente el gráfico de esperas, las barras de colores en realidad indican esperas de bloqueo, no esperas de E / S.

Además, el gráfico de E / S muestra un mayor uso del disco del sistema , no el uso del disco de SQL Server .

Dado que el gráfico de memoria se acerca al tamaño de la memoria de su sistema a medida que la utilización del sistema aumenta con el tiempo, creo que su instancia está comprometida en exceso para la configuración de memoria máxima del servidor actual (o la configuración de memoria máxima del servidor no está configurada en absoluto), y uno o Más de las agrupaciones de memoria de SQL Server se intercambian en el disco.

La solución es reducir la configuración de memoria máxima del servidor (o establecerla en un valor apropiado si no está configurada). Vea mi respuesta aquí para obtener una respuesta más profunda de un escenario similar, y mi publicación de blog:

¿La memoria de mi SQL Server está demasiado comprometida?

Jon Seigel
fuente