INF: Noções básicas sobre Bufwait e mensagens de tempo limite WRITELOG

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

Sumário

Ao examinar o errorlog do SQL Server, você poderá ver periodicamente os seguintes tipos de mensagens:
bufwait: tempo limite, BUF_IO, bp 0xd37ab0, pg 0x5e74e, stat 0x1008/0x400003, obj 0x6d4f8c1b, bpss 0x2069e1f0
- ou -
WRITELOG: tempo limite, dbid 2, dbstat2 0x22(0x22), T1/T2 0/1, proprietário = 3, waittype = 0 x 81
Este artigo explica o significado das mensagens de tempo limite bufwait e writelog.

Mais Informações

O SQL Server usa as E/s chamadas assíncronas chamada ReadFile(), ReadFileEx() WriteFile() e WriteFileEx() quando executar leituras e gravações. Essas chamadas API do Win32 envio uma solicitação de E/s para o Windows NT Server e, em seguida, permitir que o aplicativo continuar com outras operações enquanto aguarda a conclusão da operação. Na conclusão, ele sinaliza o aplicativo que a gravação foi concluída por meio de uma rotina de evento ou a conclusão da sincronização.

Mensagens a bufwait e logwrite são, na verdade, avisos e podem não ser necessariamente um sinal de qualquer problema com o computador ou do SQL Server. Se o SQL Server aguardou mais tempo que o número de segundos configurado no 'recurso limite' Configuração (que, por padrão é 10 segundos), ele imprime uma mensagem de erro que indica o tempo limite. No entanto, ele deverá continuar aguardando a solicitação de E/s para concluir antes de continuar. A mensagem bufwait corresponde a um atraso em ler uma página do disco para colocar em cache ou liberar uma página no cache de saída para o disco. A mensagem logwrite é específica para ler ou gravar registros de log.

SQL Server usa métodos de sincronização de segmento normais para garantir acesso ordenado ao log de transação. Em uma mensagem de tempo limite writelog, a identificação de banco de dados é fornecida no campo dbid, assim como a identificação de processo (proprietário) no qual está aguardando a outra conexão. Na mensagem de exemplo acima, observe que o atual processo estava usando tempdb (dbid 2) e que ele está aguardando o processo de ponto de verificação (proprietário = 3). Ao investigar a causa de tempos limite writelog, talvez seja vantajoso periodicamente consulta sysprocesses para reunir informações sobre quais tipos de processamento estão sendo executados pelo spid "proprietário" listado na mensagem de writelog.

Atividade de reversão pesado adiciona log adicional e contenção de E/s de disco e essa atividade foi observada como contribuindo para writelog tempos limite. Para obter um melhor desempenho, tente minimizar o número de transações deve ser revertida; como atividade no aumenta a servidor, usando um tempo limite de consulta que é muito curto pode exacerbam ainda mais o problema fazendo reversões desnecessários. Começando com o SQL Server 6.5 Service Pack 2, uma nova opção de configuração, LogLRU buffers, foi adicionado que pode melhorar o desempenho em ambientes exigir leituras de log pesado, como seria necessária no processamento de uma reversão ou disparador. Observe que usar essa opção de reserva espaço para armazenar páginas de log no cache, reduzindo a quantidade de cache de dados disponível. Consulte o arquivo Readme.txt incluído no service pack para obter mais informações sobre determinar um valor ideal para esse parâmetro.

Se essas mensagens aparecerem somente intermitentemente, eles não podem ser indicativo de qualquer problema. No entanto, se aparecem com bastante regularidade, ele talvez um sinal de que o subsistema de disco é atingir a capacidade e que você pode se beneficiar de difundir a carga de E/s por um número maior de controladores ou discos, para reduzir o período de tempo que você precise aguardar a conclusão da operação.

Para determinar o que carregar o subsistema de disco está tratando, você pode usar o Monitor de desempenho para observar os contadores de disco apropriados para seu sistema. Monitore o contador % tempo disco disco lógico e/ou disco físico que correspondem aos seus dispositivos de log e dados; se o valor for consistentemente alto, considere maneiras de distribuir a carga de E/s e procure indicações de que o subsistema de disco é atingindo seus limites. Você pode executar adicionais ajuste usando % Disk Read Time e % Disk Write Time contadores, que permitiria a exercer um melhor controle em difusão a carga de E/s nos discos e controladores. Um valor de comprimento de fila de disco grande indica uma grande lista de pendências em solicitações de E/s e pode desejar investigar ainda mais adicionando discos ou carregar controladores adicionais para distribuir a E/s. Você pode encontrar informações adicionais sobre os contadores de disco em documentação do Windows NT Server, o Windows NT Server Resource Kit e o seguinte artigo na Base de dados de Conhecimento da Microsoft:
102020: como monitorar o desempenho de disco com o desempenho do sistema

Enquanto essas mensagens resultam de atraso na execução de E/s, vários valores de configuração do SQL Server têm um impacto direto sobre a produtividade geral de E/s do sistema: máximo de E/s assíncrona; máximo lazywrite E/s; logwrite suspensão; e tempo limite do recurso.

O valor de configuração 'máximo assíncrono E/s' determina que o número máximo de E/s assíncronas pendentes solicitações que SQL Server permitirá, reduzindo o número de solicitações pendentes. Quando é feita uma solicitação de E/s assíncrona, o Windows NT Server deve enfileirar a solicitação, que tem um associado sobrecarga. Enquanto solicitações de E/s assíncronas podem aumentar o desempenho quando usada corretamente, um limite pode ser contatado no ponto que uso adicional, na verdade, pode começar a prejudicar o desempenho do sistema. Esse limite amplamente depende do controlador, driver e o subsistema de disco associados. Se você receber os erros acima persistentemente e alterou esta configuração de seu valor padrão, considere configuração-lo de volta para seu valor padrão.



O parâmetro 'máximo lazywrite E/s' está relacionado à configuração 'máximo assíncrono E/s', mas reduz o número de solicitações pendentes feitas pelo processo Lazywriter especificamente. O processo Lazywriter tenta liberar páginas alteradas do cache em disco para que sempre haja espaço livre no cache de dados. A quantidade de espaço que o processo tenta manter livre é controlada pela opção de configuração 'buffers livre'.

A configuração 'logwrite dormir' é uma opção configuração avançada que força um atraso intencional antes de gravar páginas de log em disco. Porque as páginas de log devem ser fisicamente comprometidas em disco antes que são feitas modificações de dados, você geralmente deseja essas gravações a serem executadas mais rápido possível. Em determinadas circunstâncias, você pode melhorar o desempenho, forçando um atraso intencionalmente, para que vários processos possam "pacote" registros de log em uma única página e, portanto, reduzir o número de operações de gravação. O tempo total usado nesse atraso intencional é contado como parte do período de tempo limite para a operação de gravação geral, para que um tempo limite writelog pode ser induzido artificialmente aumentando a configuração 'logwrite suspensão'. Alterações para esse valor de configuração somente devem ser feitas de maneira controlada, para garantir que o desempenho não é prejudicado.



A configuração 'tempo limite de recursos' controla o tempo limite geral as operações de E/s assíncrona. Por padrão, a configuração é definida como 10 (segundos), portanto, qualquer operação que aceita mais de 10 segundos para concluir resulta em um aviso de tempo limite. Definir esse valor muito baixo pode causar tempos limite em um período inacreditavelmente curto. Se você está vendo freqüentemente bufwait ou writelog tempos limite, você pode aumentar essa configuração para reduzir a freqüência com que esses erros são gerados.

Porque o SQL Server salienta o subsistema de E/s tão amplamente, também é importante verificar que você está executando com as versões mais recentes a unidade e o firmware do controlador, bem como o driver mais recente. Também consulte o fabricante do hardware para qualquer diagnóstico que eles tenham sobrecarga do subsistema do disco.

Se as informações acima não ajudarem a resolver o problema, talvez queira considerar a sobrecarga o sistema de uma maneira semelhante à que feito pelo SQL Server. Para ajudar você a fazer isso, um utilitário chamado SQLHDTST foi escrito. Para obter mais informações sobre o utilitário e locais dos quais ela pode ser baixada, consulte o seguinte artigo na Base de dados de Conhecimento da Microsoft:
178444SQL Server Utility arquivos disponível
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: 167711 - Última revisão: sexta-feira, 21 de novembro de 2003 - Revisão: 3.1
A informação contida neste artigo aplica-se a:
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Express
  • Microsoft SQL Server 2008 Standard
Palavras-chave: 
kbmt kbenv kbhardware kbinfo KB167711 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: 167711
Aviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.

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