INF: Bufwait Noções sobre e mensagens de tempo de espera Writelog

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

Sumário

Quando examinar errorlog do SQL Server, 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), q1/T2 0/1, proprietário = 3, waittype = 0x81
Este artigo explica o significado das mensagens de tempo de espera bufwait e writelog.

Mais Informação

SQL Server utiliza as assíncronas E/s chamadas ReadFile(), ReadFileEx() WriteFile() e WriteFileEx() quando efectuar leituras e escreve. Estas chamadas de API do Win32 submeter um pedido de E/s para o Windows NT Server e permitir que a aplicação continuar com outras operações ao aguardar a operação esteja concluída. Na conclusão, assinala a aplicação que foi concluída a escrita através de uma rotina de evento ou a conclusão da sincronização.

As mensagens de bufwait e logwrite são realmente avisos e poderão não ser necessariamente um sinal de qualquer problema com o computador ou do SQL Server. Se SQL Server tem de aguardado mais do que o número de segundos configurado no tempo de 'recurso limite' Definir (o que, por predefinição é 10 segundos), imprime uma mensagem de erro que indica o tempo limite. No entanto, deve continuar a aguardar o pedido de E/s para concluir antes de poder continuar. A mensagem bufwait corresponde a um atraso em ler uma página a partir do disco para colocar em cache ou esvaziar uma página na cache de saída para o disco. A mensagem logwrite é específico de leitura ou escrita registos.

SQL Server utiliza métodos de sincronização normal dos threads para garantir acesso ordenado no registo de transacções. Numa mensagem de tempo de espera writelog, é fornecido o ID da base de dados no campo dbid, bem como o ID de processo (proprietário) da outra ligação em que está à espera. Na mensagem de exemplo acima, repare que o actual processo estava a utilizar tempdb (dbid 2) e que está à espera sobre o processo de ponto de verificação (proprietário = 3). Quando investigar a causa do writelog tempos limite, poderá ser benéfico sysprocesses de consulta periodicamente para recolher informações sobre os tipos de processamento que está a ser executados pelo spid "proprietário" listado na mensagem de writelog.

Actividade de anulação grosso adiciona registo adicional e contenção de E/s do disco e essa actividade tem sido observada como contribuir para tempos de espera writelog. Para obter um melhor desempenho, tente minimizar o número de transacções que deve ser revertida; como actividade no aumenta a servidor, utilizando um tempo limite de consulta é demasiado curto mais poderá exacerbate o problema fazendo anulação de alterações desnecessárias. Começando pelo SQL Server 6.5 Service Pack 2, uma nova opção de configuração, LogLRU memórias intermédias, foi adicionado que poderá melhorar o desempenho em ambientes que requerem registo grosso leituras, tal como seriam necessárias no processamento de uma anulação ou accionador. Tenha em atenção que a utilização desta opção de reserva espaço para guardar páginas de registo na cache, reduzindo a quantidade de cache de dados disponível. Consulte o ficheiro Readme.txt incluído num service pack para obter mais informações sobre como determinar um valor ideal para este parâmetro.

Se estas mensagens aparecem apenas intermitentemente, poderão não ser indicam de qualquer problema. No entanto, se estes aparecerem bastante regularmente, poderá ser um sinal de que o subsistema do disco é atingir a capacidade e que, pode beneficiar com a distribuir a carga de E/s através de um grande número de controladores ou discos, para reduzir o período de tempo que ter de aguardar a operação esteja concluída.

Para determinar o que carregar o subsistema do disco está a processar, pode utilizar o Monitor de desempenho para ver os contadores de disco adequados ao seu sistema. Monitorize o contador % tempo de disco para disco lógico e/ou o disco físico que correspondem aos dispositivos de registo e dados; se o valor é consistentemente elevado, considere a formas de distribuir a carga de E/s e procure indicações que o subsistema do disco atingir o respectivo limite. Pode efectuar a excelente optimização adicional utilizando o % tempo de leitura de disco e % tempo de escrita de disco contadores, que permitirá ter um melhor controlam de distribuir a carga de E/s em discos e controladores. Um valor de comprimento de fila de disco elevado indica um backlog grande nos pedidos de E/s e poderá pretender investigar a adicionar mais discos ou carregar controladores adicionais para distribuir a E/s. É possível localizar informações adicionais sobre os contadores de disco a 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 monitorizar o desempenho do disco com o Monitor de desempenho

Enquanto estas mensagens resultam atraso na execução de E/s, vários valores de configuração do SQL Server ter um impacto directo sobre o débito de E/s geral do sistema: máximo de E/s assíncrona; máximo lazywrite E/s; suspensão logwrite; e tempo limite de recursos.

O valor de configuração 'máximo assíncrona E/s' determina que o número máximo de E/s assíncrona pendentes solicitações que SQL Server irá permitir que, optimizar o número de pedidos pendentes. Quando é efectuado um pedido de E/s assíncrono, o Windows NT Server tem fila o pedido, que tem uma associada sobrecarga. Enquanto pedidos de E/s assíncronos podem melhorar o desempenho quando utilizadas correctamente, é possível alcançar um limite de altura em que utilize mais pode efectivamente prejudicar o desempenho do sistema. Este limite depende em grande parte do controlador, controlador e subsistema de disco associada. Se persistentemente receber qualquer um dos erros descritos anteriormente e alterou o valor predefinido desta definição, considere defini-la novamente para o valor predefinido.



O parâmetro 'máximo lazywrite E/s' está intimamente relacionada com a definição 'máximo assíncrona E/s', mas acelera especificamente o número de pedidos pendentes feitos pelo processo Lazywriter. O processo de Lazywriter tenta limpar as páginas alteradas a partir da cache no disco para que haja sempre algum espaço livre na cache de dados. A quantidade de espaço que o processo tenta manter livre é controlada pela opção de configuração 'livre memórias intermédias'.

A definição de configuração 'modo de suspensão logwrite' é uma opção de configuração avançada que force um atraso intencional antes de escrever as páginas de registo no disco. Porque as páginas de registo tem de estar fisicamente consolidadas para o disco antes de serem efectuadas modificações de dados, normalmente pretende que estes escritas para ser efectuada o mais rapidamente possível. Em determinadas circunstâncias, pode melhorar o desempenho forçando intencionalmente um atraso para que vários processos podem "Compactar" registos numa única página e, assim, reduzir o número de operações de escrita. A quantidade de tempo utilizado neste atraso intencional é contada como parte do período de tempo de espera para a operação de escrita geral, para que um tempo limite writelog poderá ser induced artificialmente aumentando a definição de configuração 'modo de suspensão logwrite'. Alterações a este valor de configuração só devem ser efectuadas de uma forma controlada, para garantir que o desempenho não é hindered.



A definição de configuração de 'tempo limite de recursos' controla o tempo limite global as operações de E/s assíncronas. Por predefinição, a definição é definida para 10 (segundos), para que qualquer operação que utiliza mais de 10 segundos para concluir resulta num aviso de limite de tempo. Definir este valor demasiado baixo, poderá provocar tempos de espera numa hora unrealistically curta. Se estiver a ver frequentemente bufwait ou writelog tempos de espera, pode aumentar esta definição para reduzir a frequência com que estes erros são gerados.

Uma vez que SQL Server esforços subsistema de E/s, extensivamente, também é importante verificar se está a funcionar com as versões mais recentes na unidade e controlador firmware, bem como o controlador mais recente. Consulte também o fabricante do hardware para quaisquer diagnósticos que podem ter para stressing o subsistema do disco.

Se as informações acima não ajudar a resolver o problema, poderá considerar stressing o sistema de uma forma semelhante à que efectuada pelo SQL Server. Ajudá-lo a fazê-lo, um utilitário denominado SQLHDTST foi escrito. Para obter mais informações sobre o utilitário e localizações a partir da qual pode ser transferido, consulte o seguinte artigo na base de dados de conhecimento da Microsoft:
178444Ficheiros de SQL Server utilitário disponível
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: 167711 - Última revisão: 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 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: 167711
Exclusão de Responsabilidade para Conteúdo sem Suporte na KB
Este artigo foi escrito sobre produtos para os quais a Microsoft já não fornece suporte. Por conseguinte, este artigo é oferecido "tal como está" e deixará de ser actualizado.

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