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

Traduções de Artigos Traduções de Artigos
Artigo: 897284 - Ver produtos para os quais este artigo se aplica.
Expandir tudo | Reduzir tudo

Nesta página

Sumário

Um sistema de gestão de base de dados (DBMS), como o SQL Server, depende da actualização do ficheiro de entrada e saída (E/s) operações. Qualquer um dos seguintes itens pode criar bloqueado ou retardada problemas de E/s. Estes problemas rapidamente podem ter um efeito adverso na capacidade de resposta do SQL Server e o desempenho:
  • Problemas de hardware
  • Hardware que não está correctamente configurado
  • Definições de firmware
  • Controladores de filtro
  • Compressão
  • Erros
  • Outras condições no caminho de E/s
Estes problemas de E/s podem causar o seguinte comportamento ocorrer:
  • Bloquear
  • Enganchado contenção e tempos limite
  • Tempo de resposta lento
  • Esticar dos limites do recurso
A partir do Microsoft SQL Server 2000 Service Pack 4 (SP4), SQL Server inclui uma lógica que ajuda a detecta retardada e bloqueados condições para leituras de E/s de base de dados escritas e leituras de E/s de ficheiro de registo e escreve. Quando uma operação de E/s pendente foi durante 15 segundos ou mais, SQL Server efectua os seguintes passos:
  1. Detecta que a operação foi pendente.
  2. Escreve uma mensagem informativa no registo 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 E/S pedidos demorar mais tempo do que 15 segundos a concluir no ficheiro [E:\SEDATA\stressdb5.ndf] na base de dados [stressdb] (7). O identificador de ficheiro de sistema operativo é 0x00000000000074D4. O deslocamento da E/S longa mais recente é: 0x00000000022000 ?.

Mensagem informativa explicação

Reduzir esta tabelaExpandir esta tabela
Texto da mensagemDescrição
Number occurrence(s)O número de pedidos de E/s que não foi concluído a leitura ou a operação de escrita em menos de 15 segundos.
Informações do ficheiroO nome de ficheiro completo, o nome de base de dados e o número de identificação (DBID) da base de dados.
ProcessarO identificador de sistema operativo do ficheiro. Pode utilizar o identificador de sistema operativo com depuradores ou com outros utilitários para ajudar a controlar pedidos de E/s (IRP) do pacote de pedido.
DesfasamentoO desvio da última bloqueado operação de E/s ou a última operação de E/s de retardada. Pode utilizar o deslocamento com depuradores ou com outros utilitários para ajudar a controlar IRP pedidos.

Nota Quando a mensagem informativa é escrita no registo de erro do SQL Server, a operação de E/s não pode ser bloqueada ou retardada.
Esta mensagem informativa indica que a carga actual poderá estar com uma das seguintes condições:
  • A carga de trabalho é que excedam as capacidades de caminho de E/s.
  • A carga de trabalho é que excedam as capacidades de sistema actual.
  • O caminho de E/s tem software danificado; talvez um firmware ou um problema de controlador.
  • O caminho de E/s tem componentes de hardware danificado.
Para obter mais informações sobre os padrões de E/s do SQL Server 2000, visite o seguinte Web site da Microsoft:
http://technet.microsoft.com/en-us/library/cc966500.aspx

Mais Informação

E/s bloqueada e E/s bloqueada

E/s bloqueada

E/s bloqueada é definido como um pedido de E/s não for concluída. Frequentemente, E/s bloqueada é um IRP bloqueada. Para resolver uma condição de E/s presa, normalmente deve reiniciar o computador ou executar uma acção semelhante. Uma condição de E/s presa normalmente indica um dos seguintes procedimentos:
  • Problemas de hardware.
  • Um erro num componente de caminho de E/s.

E/s bloqueada

E/s bloqueada é definido como um pedido de E/s for concluída. No entanto, a operação de E/s demora demasiado tempo a concluir. Comportamento de E/s bloqueado normalmente ocorre devido a uma das seguintes razões:
  • A configuração de hardware.
  • As definições de firmware.
  • Um problema de controlador de filtro que necessita de assistência do hardware ou o fornecedor de software para rastreio e para resolver.

SQL Server retardada E/s e bloqueados E/s gravação e relatórios

Suporte do Microsoft SQL Server processa muitos casos cada ano com problemas de E/s bloqueados ou interrompidos. Conforme descrito mais tarde, estes problemas de E/s aparecem de formas diferentes. Problemas de E/s são alguns dos problemas mais difícil para diagnosticar e depurar. Problemas de E/s requerem tempo significativo e recursos para depuração da Microsoft e do cliente. As funcionalidades de relatório que tenham sido adicionadas para SQL Server 2000 SP4 e em versões posteriores significativamente reduzir o tempo necessário para identificar um problema de E/s.

Os relatórios e a gravação de pedidos de E/s destinam-se numa base por ficheiro. A detecção e os relatórios de interrompida e se os pedidos de E/s são duas acções separadas.

Gravação

Existem duas localizações no SQL Server onde ocorrem acção registo. A primeira localização na qual gravação ocorre, é onde, na realidade, conclui a operação de E/s. Se um pedido de E/s demora mais de 15 segundos para concluir, ocorre uma operação de registo. A segunda localização na qual gravação ocorre, é quando executa o escritor lento. Quando executa o escritor lento, o escritor lento verifica todos os dados pendentes e o registo pendente pedidos de E/s de ficheiros. Se tiver sido excedido o limite de 15 segundos, ocorre uma operação de registo.

Fornecer informações sobre

Relatório ocorre em intervalos são 5 minutos ou mais, separadamente. Relatório ocorre quando é efectuado o seguinte pedido de E/s no ficheiro. Se Ocorreu uma acção de registo e 5 minutos ou mais decorreram desde o último relatório ocorreu, a mensagem informativa mencionada na secção "Sumário" é gravada o registo de erros do SQL Server.

O limite de 15 segundos não é ajustável. No entanto, pode desactivar a detecção de E/s interrompida e bloqueada utilizando o sinalizador de rastreamento 830 mas a Microsoft não recomenda que este procedimento é efectuado.

Para desactivar a detecção quando o SQL Server é iniciado, utilize-parâmetro de arranque T830. Utilizar-T830 parâmetro de arranque irá desactivar a detecção sempre do SQL Server é iniciado. Para desactivar a detecção para uma instância do SQL Server que está actualmente em execução, utilize a seguinte instrução:

DBCC traceoff (830,-1)

Esta definição só é eficaz para a duração do processo de SQL Server.

Nota Um pedido de E/s que fica retardado ou bloqueado é comunicado apenas uma vez. Se a mensagem indicar que são retardados 10 pedidos de E/s, esses 10 relatórios não ocorrerá novamente. Se a mensagem seguinte relatórios que são retardados 15 pedidos de E/s, isso significa que tem ficar retardados 15 novos pedidos de E/s.

O pacote de pedido de E/s (IRP) de rastreio

SQL Server utiliza as chamadas de API do Microsoft Windows padrão para ler e escrever dados. Por exemplo, SQL Server utiliza as seguintes funções:
  • WriteFile
  • ReadFile
  • WriteFileScatter
  • ReadFileGather
A leitura ou o pedido de escrita é processado pelo Windows como um pacote de pedido de E/s (IRP). Para determinar o estado do IRP a, utilize ambos os seguintes procedimentos:
  • Assistência do suporte de plataforma da Microsoft.
  • O depurador do kernel.
Para obter mais informações sobre IRP e IRP de rastreio, visite o seguinte Web site da Microsoft e procure a palavra-chave "IRP":
http://support.microsoft.com
Nota Depuração de kernel pode ser um processo invasive porque depuração de kernel pode requerer a parar o sistema para concluir as acções de depuração. Recomendamos que consulte se existem actualizações disponíveis para os seguintes itens:
  • O BIOS
  • O firmware
  • Quaisquer outros componentes de caminho de E/s
Contacte os fornecedores de hardware antes de efectuar acções de depuração adicionais. A sessão de depuração irá provavelmente envolver um controlador de outros fabricantes, firmware ou um componente de controlador de filtro.

Desempenho do sistema e consulta planear acções

Global de desempenho do sistema pode desempenhar uma função chave no processamento de E/s. O correcto funcionamento geral do sistema deve tomar em consideração quando está a investigar relatórios de operações de E/s interrompidas ou bloqueadas. Cargas excessivas podem levar o sistema global a ser lenta. Isto inclui o processamento de E/s. O comportamento do sistema quando que ocorre o problema pode ser um factor chave determinar a causa do problema. Por exemplo, se ficar elevada utilização da CPU ou se permanecer elevada utilização da CPU quando o problema ocorrer, este comportamento poderá indicar que um processo no sistema está a utilizar da CPU muito que outros processos são seja afectados negativamente.

Contadores de desempenho

Para monitorizar o desempenho de E/s, examine os seguintes contadores de desempenho para informações específicas de caminho de E/s:
  • Média de disco seg/transferência
  • Comprimento médio da fila de disco
  • Comprimento actual da fila de disco
Por exemplo, a hora média de disco seg/transferência um computador que esteja a executar o SQL Server é normalmente menos de 15 milissegundos. Se o valor de seg média de disco/transferência climbs, isto indica que o subsistema de E/s é não melhor manter com o pedido de E/s.

Tenha cuidado com os contadores de desempenho porque o SQL Server tira o máximo partido das capacidades de E/s assíncronas que premir o comprimento da fila de disco muito. Por conseguinte, mais comprimentos da fila de disco apenas não indicam um problema.

No Monitor de sistema do Windows, pode rever os contadores de "disco físico: bytes de disco/seg"para cada disco afectado e comparar a taxa de actividade contra os contadores"processo: E/S dados bytes/seg"e ? processo: E/S outro bytes/seg ? para cada processo identificar se um conjunto específico de processos está a gerar excessiva de E/s pedidos. Existem várias outras E/s relacionadas contadores disponíveis no processo de objecto que revela informações mais específicas. Se determinar que uma instância do SQL Server é responsável por carga excessiva de E/S no servidor, reveja a secção seguinte ? índices e Parallelism ?. Para informações detalhadas sobre como detectar e resolver congestionamentos de E/s, reveja a secção ? gargalos de E/s ? a documentação técnica da MSDN Troubleshooting Performance Problems in SQL Server 2008 de Troubleshooting Performance Problems in SQL Server 2005.

Índices e parallelism

Frequentemente, rajadas de E/s ocorrem porque falta um índice. Este comportamento pode forçar o caminho de E/s muito. Uma fase com índice Activar assistente (ITW) poderá ajudar a resolver pressão de E/s no sistema. Se uma consulta beneficia de um índice em vez de uma pesquisa da tabela ou talvez ainda utiliza uma sequência de ordenação ou hash, o sistema poderá ter as seguintes vantagens:
  • Uma redução de E/s física para concluir a acção directamente equivale a vantagens de desempenho da consulta.
  • Menos páginas na cache de dados tem de estar ligado através de. Por conseguinte, as páginas que estão na cache de dados permanecem relevantes às consultas do Active Directory.
  • Ordena e hashes são utilizados porque um índice pode estar em falta ou porque as estatísticas são desactualizadas. Pode reduzir tempdb utilização e contenção adicionando um ou mais índices.
  • Uma redução de recursos, uma redução de operações paralelas ou ambos. Uma vez que SQL Server não garante a execução da consulta paralela e porque é considerada a carga no sistema, é melhor optimizar todas as consultas para execução em série. Para optimizar uma consulta, abra o analisador de consultas e defina o valor de sp_configure da opção máximo grau de parallelism para 1. Se todas as consultas são optimizadas para executar imediatamente como uma operação de série, execução paralela muitas vezes é apenas um melhor resultado. No entanto, muitas vezes execução paralela é seleccionada porque a quantidade de dados é apenas grande. Para um índice em falta, poderá ter uma ordenação grande de ocorrer. Vários trabalhadores que estiverem a efectuar a operação de ordenação irão criar uma resposta mais rápida. No entanto, esta acção pode aumentar substancialmente a pressão no sistema. Pedidos de leitura grandes de vários trabalhadores podem causar uma rajada de E/s em conjunto com maior utilização da CPU a partir de vários trabalhadores. Muitas vezes uma consulta pode ser optimizada para executar mais rapidamente e utilize menos recursos se é adicionado um índice ou se ocorre outra acção de optimização.

Exemplos práticos do suporte da Microsoft SQL Server

Os exemplos seguintes foram processados pelo suporte da Microsoft SQL Server e plataformas de escalonamento de suporte. Estes exemplos destinam-se para fornecer uma moldura de referência e um conjunto ajuda as expectativas sobre retardada e bloqueados situações de E/s e sobre como um sistema poderão ser afectado ou poderá responder. Não existe qualquer hardware específico ou conjunto de controladores que constitui qualquer risco específico ou maior risco sobre outra. Todos os sistemas são iguais nesta área.

Exemplo 1: Uma registo de escrita que é bloqueada durante 45 segundos

Uma tentativa de escrita do ficheiro de registo do SQL Server periodicamente passou a ser bloqueada durante aproximadamente 45 segundos. A escrita de registo não era concluir atempadamente. Este comportamento é criado uma condição de bloqueio que conduziu a tempos limite de cliente de 30 segundos.

A aplicação submetido uma consolidação para o SQL Server e a consolidação ficou bloqueada como um registo de escrita pendentes. Este comportamento provocado a consulta para continuar a manter bloqueios e para bloquear pedidos de outros clientes. Em seguida, outros clientes iniciado limite de tempo. Isto composta o problema uma vez que a aplicação não foi concebida para recuperar transacções abertas quando ocorreu um tempo limite da consulta. Isto criado centenas de transacções abertas que foram mantendo bloqueios. Por conseguinte, uma situação de bloqueio grave ocorreu.

Para obter mais informações sobre transacções, processamento e bloquear, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
224453Noções sobre e resolver problemas de bloqueio de 2000 ou SQL Server 7.0
A aplicação assistido um Web site utilizando o agrupamento de ligações. Tal como mais ligações ficaram bloqueadas, o Web site criado mais ligações. Estas ligações ficaram bloqueadas e o ciclo de continuação.

Depois de aproximadamente 45 segundos, a escrita de registo concluída. No entanto, quando, centenas de ligações foram cópias. Os problemas de bloqueios resultaram em vários minutos de tempo de recuperação para o SQL Server e a aplicação. Quando combinado com os problemas de aplicação, a condição de E/s bloqueada teve um efeito negativo muito no sistema.
Resolução
O problema foi registado para um pedido de E/s preso num controlador de adaptador de barramento anfitrião (HBA). O computador tinha várias placas de HBA com suporte de activação pós-falha. Quando um HBA foi atrás ou não estava a comunicar com rede de área o armazenamento (SAN), o valor de limite de tempo da "tentativa antes da activação pós-falha" foi configurado para 45 segundos. Quando o limite de tempo foi excedido, o pedido de E/s foi encaminhado para a segunda HBA. A segunda HBA processado o pedido e rapidamente terminado. Para evitar estas condições lugar, o fabricante do hardware recomendado uma definição de "repetições antes de activação pós-falha" de 5 segundos.

Exemplo 2: Filtrar intervenção por parte do controlador

Muitos programas de software antivírus e produtos de cópia de segurança utilizam controladores de filtro de E/s. Estes controladores de filtro de E/s se tornam parte da pilha de pedido de E/s e têm acesso ao pedido de IRP. Suporte técnico da Microsoft tinha visto vários problemas de erros que criar condições de E/s bloqueadas ou retardada condições de E/s numa implementação de controlador de filtro.

Uma condição tal era um controlador de filtro para processar cópia de segurança permitida uma cópia de segurança dos que estavam abertos quando ocorreu a cópia de segurança. O administrador do sistema tinha incluído o directório do ficheiro de dados do SQL Server nas selecções de cópia de segurança do ficheiro. Quando a cópia de segurança Ocorreu, a cópia de segurança tentou obter a imagem correcta do ficheiro no momento da cópia de segurança iniciada. Este procedimento atrasadas pedidos de E/s. Os pedidos de E/s foram permitidos apenas concluir um de cada vez foram processadas pelo software.

Quando iniciar a cópia de segurança, desempenho do SQL Server ignorados drasticamente porque a E/s do SQL Server foi forçado a concluir um de cada vez. A composto o problema, a lógica "um de cada vez" foi que a operação de E/s não foi possível executar assincronamente. Por este motivo, quando o SQL Server esperado para enviar um pedido de E/s e continuar, o trabalho foi bloqueado na leitura ou escrita chamada até que o pedido de E/s concluída. Tarefas de processamento como um servidor de SQL leitura antecipada foram desactivadas efectivamente pelas acções do controlador de filtro. Além disso, o outro erro no controlador de filtro permanecem as acções "um de cada vez" no processo, mesmo quando a cópia de segurança foi concluída. A única forma de restaurar o desempenho do SQL Server foi para fechar e voltar a abrir a base de dados, ou para reiniciar o SQL Server para que o identificador de ficheiro foi lançado e reacquired sem a interacção de controlador de filtro.
Resolução
Para resolver este problema, os ficheiros de dados do SQL Server foram removidos do processo de cópia de segurança de ficheiros. O fabricante de software também corrigido o problema para a esquerda no ficheiro no modo "um de cada vez".

Exemplo 3: Oculta erros

Muitos sistemas finais superiores têm caminhos de E/s multicanais para processar o balanceamento de carga ou actividades semelhantes. Suporte técnico da Microsoft encontrou problemas com o software onde um pedido de E/s falha mas o software não processa correctamente a condição de erro de balanceamento de carga. O software poderá tentar tentativas infinitas. A operação de E/s fica retida e SQL Server não é possível concluir a acção especificada. Muito como o registo de escrever condição descrito anteriormente, muitos dos comportamentos sistema fraca podem ocorrer após essa condição wedges o sistema.
Resolução
Para resolver este problema, reiniciar o SQL Server é frequentemente necessário. No entanto, por vezes, tem de reiniciar o sistema operativo para restaurar a processamento. A Microsoft também recomenda que obtenha uma actualização de software do fornecedor de E/s.

Exemplo 4: Raid, armazenamento remoto e espelhamento unidades

Muitos sistemas utilizam espelhamento (mirroring) ou executar passos semelhantes para evitar a perda de dados. Alguns sistemas que utilizam o espelhamento (mirroring) são software com base e algumas são hardware baseado. A situação normalmente uncovered pelo suporte técnico para estes sistemas é latência maior.

Um aumento no tempo de E/s geral ocorre quando a E/s deve concluir para o mirror antes da E/s é considerado completo. Para instalações de espelho remoto, tentativas de rede podem tornar-se envolvidas. Quando ocorrem falhas de unidade e está a reconstruir o sistema de raid, o padrão de E/s pode também ser interrompido.
Resolução
Definições de configuração só são necessárias para reduzir a latência de espelhos (mirror) ou raid reconstrução operações.

Exemplo 5: compressão

A Microsoft não suporta Microsoft SQL Server 7.0 ou ficheiros de dados do Microsoft SQL Server 2000 e ficheiros de registo em unidades comprimidas. Compressão NTFS não é segura para o SQL Server porque o protocolo Write lá registo (WAL) quebras de compressão NTFS. Compressão NTFS também requer um aumento de processamento para cada operação de E/s. Compressão cria "um de cada vez" como comportamento provoca problemas graves de desempenho.
Resolução
Para resolver este problema, descomprima os dados e os ficheiros de registo.

Pontos de dados adicionais

As informações de tipo de espera que são fornecidas na tabela de sistema sysprocesses podem ser úteis no diagnóstico de congestionamentos de E/s. Memória intermédia de E/s enganchado espera tipos e aguarda writelog é indicadores chaves para investigar o desempenho de caminho de E/s.

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

Referências

231619Como utilizar o utilitário SQLIOStress para salientar um subsistema de disco como, por exemplo, o SQL Server
826433Diagnósticos de SQL Server adicionais ao detectar problemas de E/s não reportados
230785Algoritmos de armazenamento de dados de registo de SQL Server 7.0, SQL Server 2000 e SQL Server 2005 e expandem fiabilidade dos dados
SQL Server requer sistemas para suportar ? garantida a entrega de multimédia estável ? conforme descrito no programa do Microsoft SQL Server Always-On armazenamento solução de revisão. FOPara obter mais informações sobre os requisitos de entrada e saídas para o motor de base de dados do SQL Server, clique no número de artigo que se segue para visualizar o artigo na Microsoft Knowledge Base:
967576Requisitos de motor de entrada/saída do Microsoft SQL da base de dados do servidor

Propriedades

Artigo: 897284 - Última revisão: 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 2005 Server Workgroup
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL 2005 Server Enterprise
  • 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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