Causas de E / S de buffer alto do SQL Server 2008 R2

8

Estou tentando solucionar problemas de desempenho em um SQL Server que temos para o servidor de gerenciamento de documentos e hoje o desempenho atingiu o nível mais baixo de todos os tempos.

Observando o MDW (Management Data Warehouse) que eu configurei recentemente, vejo um grande aumento na E / S do buffer. O tempo de espera combinado do SQL é da ordem de 1500-2000 ms, o que é consideravelmente mais alto do que o normal (cerca de 500 ms). A grande proporção desse aumento é de E / S do buffer.

Não sendo um DBA e fazendo isso por necessidade, estou massivamente fora da minha profundidade.

Existe alguma maneira de saber por que houve um grande aumento na E / S do buffer? Isso provavelmente ocorre devido a uma consulta que extrai grandes quantidades de dados ou à configuração incorreta dos limites de memória do SQL Server? Existe algo específico (ou geral) sobre o qual eu deveria estar olhando ou DMVs que posso consultar para ajudar a solucionar problemas?

O servidor é o SQL Server 2008 R2. É uma VM executando duas vCPUs e 8 GB de RAM com os discos hospedados em uma matriz separada em uma SAN.

insira a descrição da imagem aqui

Os gráficos acima foram todos gerados usando o SQL Server Management Data Warehouse .

Tim Alexander
fonte

Respostas:

9

Se você observar atentamente o gráfico de espera, as barras coloridas na verdade indicam as esperas de bloqueio, não as de E / S.

Além disso, o gráfico de E / S mostra aumento no uso do disco do sistema , não no uso do disco do SQL Server .

Dado que o gráfico de memória está se aproximando do tamanho da memória do sistema à medida que a utilização do sistema aumenta com o tempo, acredito que sua instância foi supercomprometida com a configuração atual de memória máxima do servidor (ou a configuração máxima de memória do servidor não está definida) e uma ou mais conjuntos de memória do SQL Server estão sendo trocados para o disco.

A solução é diminuir a configuração de memória máxima do servidor (ou configurá-la para um valor apropriado, se não estiver definida). Por favor, veja minha resposta aqui para obter uma resposta mais aprofundada de um cenário semelhante e minha postagem no blog:

A memória do meu SQL Server está comprometida demais?

Jon Seigel
fonte