Eu tenho discutido com um DBA e alguns caras de hardware sobre problemas de desempenho em nosso servidor SQL. Normalmente está tudo bem, no entanto, nas últimas semanas, temos tido grandes picos de atraso no servidor sql. É claro que o SQL Server está aguardando na E / S do disco. Mas eu continuo sendo informado de que é porque o SQL Server está solicitando uma E / S anormalmente alta. O que não é o caso. Percebo pelo que está sendo executado que não há nada fora do normal, e tudo o que o DBA se importa é o que está causando o bloqueio e assim por diante, o que é inútil. Por exemplo, a principal coisa que vemos como backup é a operação no banco de dados ASPState, que estamos usando para gerenciar o estado da sessão ASP nos servidores da web. Essas operações normalmente nunca são vistas nos resultados ativos do Sp_who2 porque ocorrem muito rapidamente. O banco de dados está no modo de recuperação simples e o log é miminal. No entanto, durante esses picos de atraso, podemos ver muitas operações de seleção e atualização no banco de dados bloqueadas ou em espera. Tenho certeza de que o que está acontecendo é que alguém ou algum trabalho está executando algo que está causando o uso de disco heavey nas matrizes de ataque usadas para o log e os arquivos de dados dos bancos de dados. O problema está provando isso, já que ninguém quer admitir que está fazendo algo que está matando nosso site.
Minha pergunta é: quais contadores de desempenho ou o que eu posso registrar, ajudará a mostrar que o SQL Server está aguardando E / S, mas não porque está pedindo mais do que normalmente, em vez disso, porque o disco está ocupado para responder às solicitações do sql server tão rapidamente quanto normalmente?
fonte
Respostas:
Dê uma olhada nos seguintes contadores de perfmon:
Page lookups/sec
Page reads/sec
Readahead pages/sec
Full Scans/sec
Range Scans/sec
Skipped Ghosted Records/sec
Page IO latch waits
O SQL Server que administra um grande número de solicitações de E / S seria corroborado com um número elevado de verificações, aumento nas pesquisas e leituras de página e aguarda a trava de E / S alta da página. Vale a pena tentar examinar
sys.dm_exec_query_stats
entradas com altas contagens de leituras físicas. Eles poderiam identificar rapidamente o culpado.Em geral, abordando o problema como um problema de solução de problemas de desempenho, seguir um método como o Waits and Queues é a abordagem correta. Você DBA parece estar fazendo a coisa certa, então você deve ouvi-lo.
fonte
IO Data Bytes/sec
ver se algum outro processo está destruindo o disco.Para começar, use as consultas de diagnóstico de Glenn Berry e SP_Whoisactive de Adam Machanic para descobrir o que realmente está acontecendo.
Primeiro, veja quais arquivos de banco de dados têm mais gargalo de E / S executando esta consulta (consulta por Glenn Berry)
Em seguida, execute esta consulta para ver os dez principais eventos em que seu servidor está aguardando (consulta por Jonathan Kehayias ). Você também encontrará consultas semelhantes nas consultas de diagnóstico da Glenn Berry.
Depois de ter essas informações em mãos, será muito mais fácil solucionar o problema.
BTW, você pode encontrar muitas postagens sobre como usar sp_whoisactive na solução de problemas aqui.
fonte
"O problema está provando isso", disse com razão. Dê uma olhada no SQL Server: Minimize E / S de Disco
Está falando sobre seguir o DMV
Referências:
fonte