Diagnóstico no SQL Server 2000 SP4 e em versões posteriores ajuda a detectar interrompidas e paralisadas operações de E/s

Traduções deste artigo Traduções deste artigo
ID do artigo: 897284 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Um sistema de gerenciamento de banco de dados (DBMS), como o SQL Server, se baseia em pontualidade do arquivo de entrada e saída (E/s) operações. Qualquer um dos seguintes itens pode criar paralisado ou problemas de E/s interrompida. Esses problemas rapidamente podem ter um efeito adverso no desempenho e receptividade do SQL Server:
  • Hardware com defeito
  • Hardware que não está configurado corretamente
  • Configurações de firmware
  • Drivers de filtro
  • Compactação
  • Bugs
  • Outras condições no caminho de E/s
Esses problemas de E/s podem causar o seguinte comportamento ocorra:
  • Bloqueando
  • Contenção de registrador de divisão e tempos limite
  • Tempo de resposta lento
  • Alongando dos limites do recurso
O SQL Server a partir do Microsoft SQL Server 2000 Service Pack 4 (SP4), inclui lógica que ajuda a detectar interrompida e preso condições para o banco de dados de E/s de leituras e gravações e leituras de E/s de arquivo de log e gravações. Quando uma operação de E/s foi pendente por 15 segundos ou mais, o SQL Server executa as seguintes etapas:
  1. Detecta que a operação foi pendente.
  2. Grava uma mensagem informativa para o log de erro do SQL Server. O texto da mensagem é semelhante à seguinte:

    2004-11-11 00:21:25.26 spid1 SQL Server encontrou 192 occurrence(s) de solicitações de E/S levando mais de 15 segundos para concluir no arquivo [E:\SEDATA\stressdb5.ndf] no banco de dados [stressdb] (7). O identificador de arquivo do sistema operacional é 0x00000000000074D4. O deslocamento da E/S muito mais recente é: 0x00000000022000 ?.

EXPLICAÇÃO mensagem informativa

Recolher esta tabelaExpandir esta tabela
Texto da mensagemDescrição
Number occurrence(s)O número de solicitações de E/s que não foi concluída a leitura ou a operação de gravação em menos de 15 segundos.
Informações sobre o arquivoO nome de arquivo completo, o nome do banco de dados e o número de identificação (identificação do banco de dados) do banco de dados.
IdentificadorO identificador de sistema operacional do arquivo. Você pode usar a alça de sistema operacional com depuradores ou com outros utilitários para ajudar a controlar as solicitações (IRP) do pacote de solicitação de E/s.
DeslocamentoO deslocamento do último preso a operação de E/s ou a última operação de E/s de desativado. Você pode usar o deslocamento com depuradores ou com outros utilitários para ajudar a controlar IRP solicitações.

Observação Quando a mensagem informativa é gravada no log de erro do SQL Server, a operação de E/s pode não ser bloqueada ou desativada.
Esta mensagem informativa indica que a carga atual pode estar tendo uma das seguintes condições:
  • A carga de trabalho está excedendo os recursos de caminho de E/s.
  • A carga de trabalho está excedendo os recursos de sistema atual.
  • O caminho de E/s tem software não está funcionando corretamente; talvez um firmware ou um problema de driver.
  • O caminho de E/s tem componentes de hardware com defeito.
Para obter mais informações sobre padrões de E/s do SQL Server 2000, visite o seguinte site:
http://technet.microsoft.com/en-us/library/cc966500.aspx

Mais Informações

Paralisado E/s e E/s interrompidos

E/s paralisado

E/s paralisado é definido como uma solicitação de E/s não for concluída. Com freqüência, E/s paralisado é um IRP paralisado. Para resolver uma condição de E/s paralisada, você normalmente deve reiniciar o computador ou executar uma ação semelhante. Uma condição de E/s paralisada normalmente indica um destes procedimentos:
  • Hardware com defeito.
  • Um bug em um componente de caminho de E/s.

E/s interrompidos

E/s interrompidos é definido como uma solicitação de E/s for concluída. No entanto, a operação de E/s leva tempo excessivo para ser concluído. Comportamento de E/s interrompido normalmente ocorre devido a uma das seguintes razões:
  • A configuração de hardware.
  • As configurações de firmware.
  • Um problema de driver de filtro que requer assistência do hardware ou o fornecedor do software para rastrear e resolver.

SQL Server interrompida E/s e preso a E/s de gravação e relatórios

Suporte do Microsoft SQL Server trata muitos casos cada ano que envolvem problemas de E/s paralisados ou interrompidos. Conforme descrito posteriormente, esses problemas de E/s aparecer de maneiras diferentes. Problemas de E/s são alguns dos problemas mais difíceis para diagnosticar e depurar. Problemas de E/s exigem um tempo significativo e recursos para depuração da Microsoft e do cliente. Os recursos de relatórios que foram adicionados ao SQL Server 2000 SP4 e em versões posteriores significativamente reduzem o tempo é necessário para identificar um problema de E/s.

O relatório e a gravação de solicitações de E/s são criados em uma base por arquivo. A detecção e o relatório de interrompidos e paralisadas solicitações de E/s são duas ações separadas.

Gravação

Existem dois locais no SQL Server onde o registro de ação ocorrer. O primeiro local no qual gravação ocorre, é onde a operação de E/s é concluída, na verdade. Se uma solicitação de E/s leva mais de 15 segundos para concluir, ocorre uma operação de registro. O segundo local na qual gravação ocorre, é quando o gravador lento é executado. Quando o gravador lento é executado, o gravador lento verifica todos os dados pendentes e o log pendente solicitações de E/s de arquivo. Se o limite de 15 segundos foi excedido, ocorre uma operação de registro.

Relatório

Relatar ocorre em intervalos de 5 minutos ou mais, separar. Relatar ocorre quando a próxima solicitação de E/s é feita no arquivo. Se uma ação de registro ocorreu e 5 minutos ou mais passaram desde o último relatório ocorreu, a mensagem informativa mencionada na seção "Resumo" é gravada no log de erro do SQL Server.

O limite de 15 segundos não é ajustável. No entanto, você pode desativar detecção de E/s interrompida e paralisada usando o sinalizador de rastreamento 830 mas não é recomendável que você faça isso.

Para desativar a detecção de quando o SQL Server é iniciado, use o - parâmetro de inicialização T830. Usando a opção-T830 parâmetro de inicialização irá desativar a detecção sempre SQL Server é iniciado. Para desativar a detecção para uma instância do SQL Server que está sendo executado no momento, use a instrução a seguir:

DBCC traceoff (830,-1)

Essa configuração só é eficaz para a vida do processo do SQL Server.

Observação Uma solicitação de E/s que fica desativada ou bloqueada é relatada somente uma vez. Se a mensagem de relatórios que 10 solicitações de E/s estão desativadas, esses 10 relatórios não ocorrerá novamente. Se a próxima mensagem informa que 15 solicitações de E/s estão desativadas, isso significa que 15 novas solicitações de E/s tem tornam-se desativado.

Controle o pacote de solicitação de E/s (IRP)

O SQL Server usa as chamadas API do Microsoft Windows padrão para ler e gravar dados. Por exemplo, o SQL Server usa as seguintes funções:
  • WriteFile
  • ReadFile
  • WriteFileScatter
  • ReadFileGather
A leitura ou a solicitação de gravação é tratada pelo Windows como um pacote de solicitação de E/s (IRP). Para determinar o estado do IRP, use o seguinte:
  • Assistência do suporte da plataforma Microsoft.
  • O depurador do kernel.
Para obter mais informações sobre IRP e IRP rastreamento, visite o seguinte site da Microsoft e procure a palavra-chave "IRP":
http://support.microsoft.com
Observação Depuração de kernel pode ser um processo invasivo porque a depuração de kernel pode exigir que você parar o sistema para concluir as ações de depuração. É recomendável verificar se há atualizações disponíveis para os seguintes itens:
  • O BIOS
  • O firmware
  • Quaisquer outros componentes de caminho de E/s
Contate os fornecedores de hardware antes de você executar ações adicionais de depuração. A sessão de depuração provavelmente envolverá um driver de terceiros, firmware ou um componente de driver de filtro.

Ações de planos de desempenho do sistema e consulta

Geral o desempenho do sistema pode desempenham um papel chave no processamento de E/s. Você deve levar a integridade geral do sistema em consideração quando você está investigando relatórios de operações de E/s interrompidos ou paralisados. Cargas excessivas podem fazer o sistema geral seja lenta. Isso inclui o processamento de E/s. O comportamento do sistema no momento que o problema ocorre pode ser um fator-chave em determinar a causa raiz do problema. Por exemplo, se o uso da CPU se tornar alto ou se o uso da CPU permanecer alto quando o problema ocorre, esse comportamento pode indicar que um processo no sistema está usando muito da CPU que outros processos estão sendo afetados negativamente.

Contadores de desempenho

Para monitorar o desempenho de E/s, examine os seguintes contadores de desempenho para informações de caminho de E/s específicas:
  • Média de disco S/transferência
  • Comprimento médio da fila de disco
  • Comprimento da fila de disco atual
Por exemplo, a hora média de disco S/transferência um computador que está executando o SQL Server é geralmente menor que 15 milissegundos. Se o valor de média de disco S/transferência subidas, isso indica que o subsistema de E/s é não ideal manter atualizado com a demanda de E/s.

Tenha cuidado com os contadores de desempenho porque o SQL Server aproveita completo de recursos de E/s assíncronos que empurrar o comprimento de fila de disco muito. Portanto, mais comprimentos de fila de disco sozinhos não indicam um problema.

No Monitor do sistema Windows, você pode analisar os contadores de "disco físico: bytes de disco/s"para cada disco afetado e comparar a taxa de atividade contra os contadores"processo: E/S dados bytes/S"e ? processo: E/S outros bytes/s ? para cada processo identificar se um conjunto específico de processos está gerando E/s excessiva solicitações. Há várias outras E/s relacionados contadores disponíveis no processo de objeto que revela informações mais granulares. Se você determinar que uma instância do SQL Server é responsável por carga de E/S excessiva no servidor, examine a seção próxima em ? índices e paralelismo ?. Para uma discussão detalhada sobre detectar e resolver afunilamentos de E/s, revise a seção ? afunilamentos de E/s ? o white paper MSDN Troubleshooting Performance Problems in SQL Server 2008 ou Troubleshooting Performance Problems in SQL Server 2005.

Índices e paralelismo

Com freqüência, explosões de E/s ocorrem porque está faltando um índice. Esse comportamento pode empurrar o caminho de E/s muito. Uma senha com o Assistente de Turning índice (ITW) pode ajudar a resolver pressão de E/s no sistema. Se uma consulta se beneficia de um índice em vez da partir de uma verificação de tabela ou talvez até mesmo usa uma classificação ou hash, o sistema pode ter as seguintes vantagens:
  • Uma redução de E/s física para concluir a ação diretamente equivale a benefícios de desempenho para a consulta.
  • Menos páginas no cache de dados precisam ser transformada. Portanto, as páginas que estão no cache de dados permanecem relevantes para consultas ativas.
  • Classifica e hashes são usados porque um índice pode estar ausente ou porque as estatísticas estão desatualizadas. Você pode reduzir o uso de tempdb e contenção adicionando um ou mais índices.
  • Uma redução de recursos, uma redução de operações paralelas ou ambos. Como o SQL Server não garante a execução de consulta paralela e porque é considerada a carga no sistema, é melhor otimizar a todas as consultas para execução serial. Para otimizar uma consulta, abra o Query Analyzer e defina o valor de sp_configure da opção nível máximo de paralelismo para 1. Se todas as consultas são ajustadas para executar imediatamente como uma operação serial, execução paralela geralmente é um melhor resultado. No entanto, muitas vezes execução paralela é selecionado porque a quantidade de dados é apenas grande. Para um índice faltando, uma grande classificação talvez precise ocorrer. Vários operadores que estiverem executando a operação de classificação irão criar uma resposta mais rápida. No entanto, essa ação pode aumentar drasticamente a pressão no sistema. Grandes solicitações de leitura de muitos funcionários podem causar um intermitente de E/s com maior utilização da CPU de vários funcionários. Muitas vezes, uma consulta pode ser ajustada para executar mais rapidamente e use menos recursos se um índice é adicionado ou se ocorre outra ação ajuste.

Exemplos práticos do suporte do Microsoft SQL Server

Os exemplos a seguir foram tratados pelo suporte do Microsoft SQL Server e plataformas escalonamento de suporte. Esses exemplos destinam para fornecer um quadro de referência e um conjunto ajuda sobre suas expectativas interrompida e preso situações de E/s e sobre como um sistema pode ser afetado ou pode responder. Não há nenhum hardware específico ou conjunto de drivers que representam qualquer risco específico ou um risco maior sobre outro. Todos os sistemas são os mesmos nesse sentido.

Exemplo 1: A gravação de log que está presa por 45 segundos

Uma tentativa de gravação do arquivo de log do SQL Server periodicamente ficou preso por aproximadamente 45 segundos. A gravação de log não foi Acabamento em tempo hábil. Esse comportamento criado uma condição de bloqueio que levou a tempos limite do cliente de 30 segundos.

O aplicativo enviada uma confirmação para o SQL Server e a confirmação se tornou colada como uma gravação de log pendentes. Esse comportamento causado a consulta para continuar bloqueios e para bloquear solicitações de entrada de outros clientes. Em seguida, outros clientes começaram a tempo limite. Isso composta o problema porque o aplicativo não foi desenvolvido para reverter transações abertas quando ocorreu um tempo limite da consulta. Isso criou centenas de transações abertas que foram bloqueios. Portanto, ocorreu uma situação de bloqueio grave.

Para obter mais informações sobre tratamento e bloqueio de transação, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
224453Noções básicas sobre e resolver o SQL Server 7.0 ou problemas de bloqueio de 2000
O aplicativo atendidas um site usando o pool de conexão. Como mais conexões tornou-se bloqueado, o site criado mais conexões. Essas conexões tornou-se bloqueado e o ciclo de continuação.

Depois de aproximadamente 45 segundos, a gravação de log concluído. No entanto, neste momento, centenas de conexões foram feitas. Os problemas de bloqueio resultaram em vários minutos de tempo de recuperação para o SQL Server e para o aplicativo. Quando combinado com os problemas de aplicativo, a condição de E/s interrompida tinha um efeito negativo muito no sistema.
Resolução
O problema foi controlado em uma solicitação de E/s paralisada em um driver de adaptador de barramento de host (HBA). O computador tinha várias placas de HBA com suporte de failover. Quando um HBA foi atrás ou não estava se comunicando com SAN (rede de área de armazenamento), o valor do tempo limite de "repetição antes do failover" foi configurado para 45 segundos. Quando o tempo limite foi excedido, a solicitação de E/s foi roteada para a segunda HBA. A segunda HBA tratada a solicitação e rapidamente terminado. Para ajudar a evitar condições como vaga, o fabricante do hardware recomendável uma configuração de "repetição antes do failover" de 5 segundos.

Exemplo 2: Intervenção do driver de filtro

Muitos programas de software antivírus e produtos de backup usam drivers de filtro de E/s. Esses drivers de filtro de E/s se tornam parte da pilha de solicitação de E/s e eles têm acesso à solicitação de IRP. Atendimento Microsoft obteve vários problemas de erros que criar preso condições de E/s ou interrompida condições de E/s em uma implementação de driver de filtro.

Como uma condição foi um driver de filtro para processamento backup que permitido um backup dos arquivos que estavam abertos quando ocorreu o backup. O administrador do sistema tinha incluído o diretório de arquivo de dados do SQL Server nas seleções de backup do arquivo. Quando ocorreu o backup, o backup tentou obter a imagem correta do arquivo no momento o backup foi iniciado. Isso atrasada solicitações de E/s. As solicitações de E/s foram tem permissão para concluir um de cada vez somente como eles foram manipulados pelo software.

Quando o backup é iniciado, desempenho do SQL Server drasticamente ignoradas porque eram forçado a E/s do SQL Server para concluir um de cada vez. Composto o problema, a lógica de "uma vez um" era que a operação de E/s não pôde ser executada assincronicamente. Portanto, quando o SQL Server esperado para postar uma solicitação de E/s e continuar, o operador travou na leitura ou a chamada de gravação até que a solicitação de E/s é concluída. Tarefas de processamento, como um servidor SQL ler antecipadamente efetivamente foram desativadas por ações do driver de filtro. Além disso, outro bug no driver de filtro deixado as ações "um por vez" no processo, mesmo quando o backup foi concluído. A única maneira para restaurar o desempenho do SQL Server era para feche e reabra o banco de dados ou reinicie o SQL Server para que o identificador de arquivo foi lançado e reacquired sem a interação do driver de filtro.
Resolução
Para resolver esse problema, os arquivos de dados do SQL Server foram removidos do processo de backup do arquivo. O fabricante de software também corrigido o problema que o arquivo no modo "um por vez".

Exemplo 3: Erros ocultos

Muitos sistemas finais maiores tem multicanais caminhos de E/s para lidar com balanceamento de carga ou atividades semelhantes. Atendimento Microsoft encontrou problemas com o balanceamento de software em que uma solicitação de E/s falha, mas o software não manipula corretamente a condição de erro de carga. O software pode tentar tentativas infinitas. A operação de E/s fica preso e SQL Server não pode concluir a ação especificada. Muito como o log de escrever a condição que foi descrita anteriormente, muitos comportamentos ruim do sistema podem ocorrer após a como uma condição wedges o sistema.
Resolução
Para resolver esse problema, geralmente é necessário reiniciar o SQL Server. No entanto, às vezes, reinicie o sistema operacional para restaurar o processamento. Também recomendamos que você obtenha uma atualização de software do fornecedor de E/s.

Exemplo 4: Armazenamento remoto, espelhamento e RAID unidades

Muitos sistemas usam o espelhamento ou etapas semelhantes para evitar a perda de dados. Alguns dos sistemas que usam o espelhamento são software com base e alguns são baseada em hardware. A situação geralmente descoberta pelo suporte técnico para esses sistemas é maior latência.

Um aumento no tempo de E/s geral ocorre quando a E/s deve ser concluída para o espelho antes que a E/s é considerada concluída. Para instalações de espelho remoto, tentativas de rede podem se tornar envolvidas. Quando ocorrem falhas na unidade e está recriando o sistema de raid, o padrão de E/s também pode ser interrompido.
Resolução
Estrito configurações são necessárias para reduzir a latência para espelhos ou para operações de recriação de raid.

Exemplo 5: compactação

Microsoft não oferece suporte Microsoft SQL Server 7.0 ou arquivos de dados Microsoft SQL Server 2000 e arquivos de log em unidades compactadas. Compactação NTFS não é segura para o SQL Server porque o protocolo gravar Ahead log (WAL) quebras de compactação NTFS. Compactação NTFS também requer maior processamento para cada operação de E/s. Compactação cria "uma vez um" como o comportamento que causa problemas de desempenho graves ocorra.
Resolução
Para resolver esse problema, descompacte os dados e os arquivos de log.

Pontos de dados adicionais

As tipo de espera as informações fornecidas na tabela de sistema sysprocesses podem ser útil no diagnóstico de afunilamentos de E/s. Tipos de espera de registrador de divisão de E/s de buffer e espera writelog é indicadores chaves para investigar o desempenho de E/s caminho.

Para obter mais informações sobre tipos de espera, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
822101Descrição das colunas waittype e lastwaittype na tabela master.dbo.sysprocesses no SQL Server 2000 e o SQL Server 2005

Referências

231619Como usar o utilitário SQLIOStress para enfatizar um subsistema de disco, como o SQL Server
826433Diagnóstico de SQL Server adicional ao detectar problemas de E/s unreported
230785Algoritmos de armazenamento de dados de log do SQL Server 7.0, SQL Server 2000 e SQL Server 2005 e estendem confiabilidade de dados
SQL Server requer sistemas para oferecer suporte a ? entrega de mídia estável garantida ? conforme descrito no programa do Microsoft SQL Server Always-On armazenamento Solution revisão. FOPara obter mais informações sobre os requisitos de entrada e saídas para o mecanismo de banco de dados do SQL Server, clique no número abaixo para ler o artigo na Base de dados de Conhecimento da Microsoft:
967576Requisitos do Microsoft SQL Server Database Engine entrada/saída

Propriedades

ID do artigo: 897284 - Última revisão: quarta-feira, 5 de agosto de 2009 - Revisão: 3.0
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 2000 Service Pack 4
  • Microsoft SQL Server 2005 Workgroup Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Palavras-chave: 
kbmt kbinfo kbtshoot kbsqlserv2000sp4fea KB897284 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 897284

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com