Onde começar a consertar um gargalo de gargalo IO no SQL Server?

2

Recentemente encontrei uma artigo interessante que foi usado nas estatísticas de IO para identificar as causas dos problemas de desempenho. Depois de examinar minhas estatísticas, cheguei à conclusão de que tinha um "gargalo no subsistema de E / S".

Infelizmente, não sei o que isso significa. Pelo que eu encontrei na web, jogar um pouco mais de memória nele pode ajudar (eu suponho porque não tem que escrever no disco tanto), mas estou curioso para saber se alguém sabe de uma boa abordagem para determinar como prosseguir?

    
por Abe Miessler 05.02.2011 / 01:15

3 respostas

3

O subsistema IO geralmente lida com armazenamento em disco. Isso acontece quando os dados precisam ser escritos ou lidos. De um modo geral, você vai querer monitorar a profundidade da fila de disco. Não me lembro exatamente das recomendações, mas acho que é algo como 1,5 * o número de discos físicos envolvidos.

Existem algumas soluções possíveis, dependendo do que você encontra.

Primeiro, obtenha RAM suficiente no servidor para que basicamente possa manter todo o banco de dados na memória e ter bastante espaço para executar consultas. Quanto menor o tempo que você pode mantê-lo de paginação para o disco, melhor você está. Isso inclui ter RAM suficiente para manter as tabelas temporárias na RAM, em vez de tê-las pagas no disco.

Em segundo lugar, obtenha discos mais rápidos. Drives SCSI de 15k apropriadamente invadidos. Você pode até investigar SSD, se aplicável; esteja ciente de suas limitações antes de você. Coloque os arquivos de log em um sistema de disco separado e, potencialmente, divida as tabelas de modo que elas fiquem em discos diferentes também. Este pode ficar complicado e muito caro.

Em terceiro lugar, ajuste suas consultas para fazer melhor uso de seus índices, o que também deve ajudar a limitar quando o servidor precisa ir ao disco para obter os registros completos.

Finalmente, não se preocupe, a menos que seja um problema real. Se o seu aplicativo estiver se movendo rapidamente, encontre uma área diferente para "corrigir". Se for um problema real, decida se é hora de dimensionar seu servidor.

    
por 05.02.2011 / 01:22
5

Antes de começar a atualizar seu sistema de E / S, você precisa examinar sua indexação. Se sua indexação não estiver correta, isso mostrará mais carregamento de IO nos discos. Depois de corrigir seus problemas de indexação, se você ainda tiver problemas de E / S, precisará adicionar mais fusos ou alternar para flash drives.

    
por 05.02.2011 / 02:40
0

O subsistema IO basicamente significa disco / armazenamento. Se esse for realmente o seu gargalo, você melhorará o desempenho adicionando mais e / ou discos mais rápidos. Escolhendo o nível de ataque correto também é importante, o RAID 10 geralmente supera o RAID 5 para bancos de dados, especialmente para cargas pesadas de gravação.

Mas comece certificando-se de que seu servidor não esteja desperdiçando a largura de banda do disco. A indexação apropriada é uma obrigação para o desempenho do banco de dados. Mais memória ram para armazenamento em cache também pode diminuir a carga de E / S. Reorganizar seus dados para melhor localização pode ajudar, dependendo dos padrões de acesso.

    
por 05.02.2011 / 02:33