TempDB Contenção com 24 arquivos tempdb físicos na caixa AMD Opteron de 48 núcleos

8

Acabei de receber a seguinte notificação sobre uma instância do SQL Server 2005. A instância tem uma proporção de núcleo para tempdb-arquivo de 2: 1 para uma contagem total de 24 arquivos tempdb. A contenção não deveria estar acontecendo - como eu detectaria a fonte dessa contenção? O TempDB e todos os outros bancos de dados estão no armazenamento SAN via Ethernet de 10 GB. A SAN possui 46 unidades SAS de 10k configuradas em uma matriz RAID-60. Essa matriz é compartilhada com vários servidores VMWare e um ou dois servidores Exchange.

Notificação do Idera SQL Diagnostic Manager:

11/8/2012 22:49:00, Contenção de Tempdb (ms) no MGSQL01 é Crítica.

A contenção de trava do tempdb foi detectada no MGSQL01. O tempo total de espera detectado é de 1782 milissegundos. Isso é uma indicação de que o desempenho está sendo impactado pela contenção nos mapas de alocação no tempdb. Se este for um problema comum, poderá ser atenuado seguindo as práticas recomendadas em relação à contagem de arquivos tempdb, tamanho e subsistema de E / S.

Tempo de espera do PFS: 1782 ms Tempo de espera do GAM: 0 ms Tempo de espera do SGAM: 0 ms

Contenção de tempdb (ms): tempo de espera atual para mapas de alocação de tempdb (GAM, SGAM e PFS), em milissegundos. Este alerta pode ser gerado apenas em instâncias executando o SQL 2005 ou superior.

Max Vernon
fonte
11
Heya Max, apenas algumas perguntas rápidas. Eu tive que lidar com um problema semelhante muito recentemente. -É pagelatch_SH ou pageiolatch_SH? Tenho certeza de que é pagelatch_SH no seu caso, mas só quero ter certeza. -Você usou eventos estendidos para rastrear quais consultas estão acumulando mais PAGELATCH_SH tempos de espera? Você também pode postar suas 20 principais estatísticas de espera em SELECT * FROM SYS.DM_OS_WAIT_STATS ORDER BY 3 O que é comum dizer a você? De fato, a unidade TempDB está enfrentando alguma contenção de E / S real? Pico no MS?
Ali Razeghi
2
As esperas em uma página do PFS estão em um arquivo específico ou em todas elas? Todos os arquivos tempdb têm o mesmo tamanho? Você sabe que tipo / tamanho de objetos estão sendo alocados no tempdb? As tabelas temporárias estão explicitamente truncadas e eliminadas pelo código do aplicativo? Você já pensou em implementar o sinalizador de rastreamento 1118?
Darin estreito
2
@MaxVernon: Como regra geral, sempre execute o T1118. Não há realmente nenhuma razão para correr sem ele
Thomas Kejser
11
@ maxvernon, adicionei +1 ao seu item de conexão. Agradável.
Edward Dortland

Respostas:

5

O sinalizador de rastreamento 1118 força alocações de extensão uniforme em vez de alocações de páginas mistas. O sinalizador de rastreamento é comumente usado para auxiliar na escalabilidade do TEMPDB, evitando o SGAM e outros pontos de contenção de alocação. Se você tiver o SQL Server 2008 ou o SQL Server 2005 e a correção aplicada e ainda encontrar a contenção TEMPDB, considere o sinalizador de rastreamento 1118 para obter mais assistência na resolução da contenção.

Troy
fonte
11
Você poderia explicar, de preferência com um exemplo, como a mudança da alocação compartilhada de página única para a alocação de extensão dedicada resolverá a contenção do PFS?
Edward Dortland