O comprimento da fila de disco do servidor é alto, mas os bytes de disco/seg são menores do que é capaz

O comprimento da fila de disco do servidor é alto, mas os bytes de disco/seg são menores do que é capaz

Tenho um ambiente executando o SQL Server em uma plataforma Windows VMWare usando uma SAN com SSDs configurados em RAID 6 e usando Veeam para backups de servidores e LiteSpeed ​​para backups de SQL Server.

Tive um problema várias vezes no ano passado, onde às vezes o banco de dados ficava lento e meu valor médio. O comprimento da fila de disco é alto, mas meus bytes de disco/seg são muito menores do que deveriam.

Aqui está o Monitor de desempenho no servidor de banco de dados. Quando esse problema acontece, o Avg. O comprimento da fila de disco está sempre na faixa de várias centenas e os bytes de disco/s ficam em torno de 5 a 15 MB/s. Durante a operação normal (quando esse problema não está acontecendo), os bytes de disco/s chegam a 900 MB/s ou mais.

insira a descrição da imagem aqui

Desde que esse problema começou a acontecer, substituí o hardware SAN - incluindo os switches. Mas o problema continua no novo hardware.

Minha teoria é que isso não é um problema do SQL Server, porque se o problema fosse que o SQL Server estava saturando a E/S do disco, eu deveria ver bytes de disco/seg muito maiores. Mas sempre que esse problema acontece, os Bytes de Disco/seg são sempre muito baixos.

Eu pensei que talvez fosse o software de backup - rodando no servidor de banco de dados ou em outro servidor que usa o mesmo VMWare/SAN - mas nem os backups do servidor nem os backups do SQL Server parecem estar em execução enquanto esse problema está acontecendo. acontecendo.

Meu último pensamento é que este é um problema com o VMWare, mas entrei em contato com eles e até agora eles não conseguiram ajudar.

A reinicialização do servidor de banco de dados corrige o problema. Às vezes, o problema acontecerá novamente em um dia e, às vezes, o problema não acontecerá novamente por meses. Sempre que o problema acontece, não tenho conhecimento de nada fora da carga de trabalho normal em execução no banco de dados.

O que poderia estar causando esse problema em que a taxa de transferência do disco diminui para cerca de 1% do que deveria ser capaz?

Responder1

Os HDDs ficam mais lentos quanto maior a fila de trabalho e vice-versa - há um número muito limitado de IOPS que você pode aplicar a eles (cerca de 40-200, dependendo da classificação e do RPM). Qualquer aumento de demanda além desse ponto diminui ainda mais seu desempenho.

A criação de um array de HDD aumenta o número total de IOPS de leitura possíveis em todo o array, mas geralmente menos do que simplesmente somar seus IOPS individuais. As IOPS de gravação são mais complexas e dependem muito do nível de RAID, do cache, etc.

Qualquer coisa além disso requer SSDs e controladores apropriados.

Responder2

Como você já está usando SSDs, sugiro que um problema possa ser semelhante ao que tive, com o TRIM não sendo tratado adequadamente nos SSDs. Apagar um bloco de dados em um SSD não é instantâneo, preparar um bloco para reutilização pode ser um processo lento e pode ser a causa da desaceleração - se seus blocos livres e preparados se esgotarem, o array poderá desacelerar drasticamente como novo blocos são preparados. Verifique se sua SAN está ciente de que estes são SSDs e que possuem TRIM em segundo plano ativado.

informação relacionada