INF: Understanding Bufwait e Writelog Timeout messaggi

Traduzione articoli Traduzione articoli
Identificativo articolo: 167711 - Visualizza i prodotti a cui si riferisce l?articolo.
Espandi tutto | Chiudi tutto

Sommario

Quando si esamina il log degli errori SQL Server, sarÓ presente periodicamente i seguenti tipi di messaggi:
bufwait: timeout, BUF_IO, bp 0xd37ab0, pg 0x5e74e, stat 0x1008/0x400003, obj 0x6d4f8c1b, bpss 0x2069e1f0
- oppure -
writelog: timeout, 2, 0x22(0x22) dbstat2, dbid proprietario 0/1, T1/T2 = 3, waittype = 0 x 81
In questo articolo viene spiegato il significato dei messaggi di timeout di bufwait e writelog.

Informazioni

SQL Server utilizza le chiamate di I/O asincrone ReadFile(), al ReadFileEx() WriteFile() e WriteFileEx() quando viene eseguito legge e scrive. Queste chiamate all'API Win32 inviare una richiesta di I/O a Windows NT Server e quindi consentono all'applicazione di continuare con altre operazioni mentre si attende il completamento dell'operazione. Al termine, viene segnalato l'applicazione che la scrittura Ŕ stata completata per mezzo di una routine evento o il completamento di sincronizzazione.

Messaggi bufwait sia logwrite sono effettivamente gli avvisi e non sono necessariamente un segno di qualsiasi problema con il computer o SQL Server. Se SQL Server Ŕ attesa supera il numero di secondi configurato in "risorse timeout" impostazione (ovvero per impostazione predefinita 10 secondi), verrÓ stampata di un messaggio di errore che indica il timeout. Tuttavia, Ŕ necessario continuare in attesa di richiesta di I/O per completare prima di continuare. Il messaggio bufwait corrisponde a un ritardo in la lettura da disco per inserire nella cache di una pagina o lo scaricamento di una pagina nella cache da disco. Il messaggio logwrite Ŕ specifico per la lettura o scrittura del record di log.

SQL Server utilizza metodi di sincronizzazione thread normale per garantire accesso ordinato nel log delle transazioni. In un messaggio di timeout writelog, l'ID del database viene fornito il campo dbid, quali l'ID di processo (proprietario) dell'altra connessione in cui Ŕ in attesa. Nel messaggio di esempio precedente, si noti che elaborano corrente utilizza tempdb (dbid 2) e che Ŕ in attesa sul processo di checkpoint (proprietario = 3). Durante l'analisi la causa del timeout writelog, pu˛ essere utile per query periodicamente tabella sysprocesses per raccogliere informazioni sui tipi di elaborazione vengono eseguiti per lo spid "owner" indicato nel messaggio di writelog.

AttivitÓ di ripristino elevato aggiunge ulteriori log e conflitti di I/O del disco e tali attivitÓ Ŕ stato osservato come che contribuiscono a timeout writelog. Per ottenere prestazioni ottimali, tentare di ridurre al minimo il numero di transazioni che Ŕ necessario eseguire il rollback; come attivitÓ l'aumento di server, utilizzando un timeout di query Ŕ troppo breve pu˛ ulteriormente exacerbate il problema generando rollback non necessari. Inizia con SQL Server 6.5 Service Pack 2, una nuova opzione di configurazione, LogLRU buffers Ŕ stato aggiunto che potrebbe migliorare le prestazioni in ambienti che richiedono letture registro elevato, ad esempio sarebbe stato necessario nell'elaborazione di un ripristino o il trigger. Si noti che l'utilizzo di questa opzione riserva spazio per contenere le pagine di log nella cache, ridurre la quantitÓ di cache di dati disponibile. Vedere il file di Readme.txt incluso nel service pack per ulteriori informazioni sulla determinazione di un valore ottimale per questo parametro.

Se questi messaggi vengono visualizzati solo in modo intermittente, potrebbero non essere indicativi di eventuali problemi. Tuttavia, cui vengono visualizzate in modo abbastanza regolare, potrebbe essere un simbolo che il sottosistema del disco Ŕ raggiungere la capacitÓ e che potrebbe risultare utile la distribuzione il carico di I/O su un numero maggiore di controller o i dischi, per ridurre il periodo di tempo che Ŕ necessario attendere il completamento dell'operazione.

Per determinare cosa caricare il sottosistema del disco sta gestendo, Ŕ possibile utilizzare Performance Monitor per controllare i contatori di disco appropriati per il sistema. Monitorare il contatore di tempo disco di % per disco logico e/o disco fisico che corrispondono alle periferiche di registro e dati, se il valore Ŕ costantemente elevato, Ŕ consigliabile modi per distribuire il carico di I/O e cercare di indicazioni che il sottosistema del disco Ŕ raggiungere i limiti. ╚ possibile eseguire ulteriori ottimizzazione utilizzando % tempo lettura disco e % tempo scrittura disco contatori, che pu˛ consentire un maggiore controllo di distribuzione il carico di I/O nelle dischi e controller. Grande valore lunghezza coda del disco indica un backlog di grandi dimensioni delle richieste di I/O ed Ŕ possibile analizzare l'aggiunta di ulteriori dischi oppure caricare ulteriori controller per distribuire l'i/O. Puoi trovare ulteriori informazioni sui contatori disco la documentazione di Windows NT Server, Windows NT Server Resource Kit e il seguente articolo nella Knowledge Base:
102020: come per il monitoraggio delle prestazioni del disco con Performance Monitor

Mentre questi messaggi generato dal ritardo nell'esecuzione di I/O, diversi valori di configurazione di SQL Server hanno un impatto diretto sul throughput di I/O complessivo del sistema: max async I/O, max lazywrite I/O; logwrite sleep; e timeout di risorsa.

Il valore di configurazione di 'max async I/O' determina che il numero massimo di I/O asincrona in sospeso richieste che SQL Server consentirÓ, la limitazione del numero di richieste in sospeso. Quando viene effettuata una richiesta di I/O asincrona, Windows NT Server necessario coda la richiesta, che dispone di un oggetto associato overhead. Mentre Ŕ possono migliorare le prestazioni quando viene utilizzato in modo appropriato in richieste di I/O asincrone, un limite Ŕ possibile accedere a quel punto ulteriore utilizzo potrebbe iniziare effettivamente un peggioramento delle prestazioni del sistema. Questo limite in gran parte dipende dal controller, driver e sottosistema del disco associato. Se si in modo permanente visualizzato uno degli errori di precedenza e si modifica questa impostazione rispetto al valore predefinito, Ŕ necessario considerare impostandola nuovamente su un valore predefinito.



Il parametro di 'max lazywrite I/O' Ŕ strettamente correlato all'impostazione di 'max async I/O', ma in particolare throttles il numero di richieste in sospeso eseguite dal processo Lazywriter. Il processo Lazywriter tenta di scaricare le pagine modificate dalla cache su disco in modo che vi sia sempre parte dello spazio disponibile nella cache di dati. La quantitÓ di spazio che il processo tenta di mantenere libero Ŕ controllata dall'opzione di configurazione 'free buffers'.

L'impostazione di configurazione di 'logwrite sleep' Ŕ un'opzione di configurazione avanzata che impone un ritardo intenzionale prima di scrivere le pagine di log su disco. PoichÚ le pagine di registro devono essere fisicamente eseguito il commit prima le modifiche apportate ai dati del disco, si desidera in genere tali scritture deve essere eseguito pi¨ presto possibile. In alcuni casi, Ŕ possibile migliorare le prestazioni imponendo intenzionalmente un ritardo, in modo che pi¨ processi possono "comprimere" record di log su una singola pagina e pertanto ridurre il numero di operazioni di scrittura. QuantitÓ di tempo utilizzato in questo ritardo intenzionale viene conteggiata come parte il periodo di timeout per l'operazione di scrittura generale, in modo che un timeout writelog potrebbe essere generato artificialmente aumentando l'impostazione di configurazione "logwrite sleep". Solo necessario apportare modifiche a questo valore configurazione in modo controllato, per garantire che le prestazioni non sono grado.



L'impostazione di configurazione di "timeout della risorsa" Controlla il timeout generale sulle operazioni di I/O asincrone. Per impostazione predefinita, il Ŕ impostata su 10 (secondi), in modo che qualsiasi operazione che accetta pi¨ di 10 secondi per completare i risultati in un avviso di timeout. Se si imposta questo valore troppo basso pu˛ causare i timeout di un'ora breve unrealistically. Se viene spesso visualizzato bufwait o writelog timeout, Ŕ possibile aumentare questa impostazione per ridurre la frequenza con cui vengono generati questi errori.

PoichÚ SQL Server evidenzia il sottosistema di I/O cosý ampiamente, inoltre Ŕ importante verificare che sia in esecuzione con le versioni pi¨ recenti di firmware del controller e l'unitÓ, nonchÚ il driver pi¨ recente. Consultare il produttore dell'hardware per qualsiasi diagnostica che dispone per stressing il sottosistema del disco.

Se le informazioni sopra non consente di risolvere il problema, sarÓ necessario prendere in considerazione stressing il sistema in modo simile a eseguito da SQL Server. Per agevolare la in questo modo, Ŕ stato scritto un'utilitÓ denominata SQLHDTST. Per ulteriori informazioni sulle posizioni da cui pu˛ essere scaricato e utilitÓ, vedere il seguente articolo della Microsoft Knowledge Base riportato di seguito:
178444File di configurazione SQL Server disponibili
SQL Server richiede i sistemi supportano ? garantire il recapito al supporto stabile ? come descritto nel programma di Microsoft SQL Server Always-On archiviazione soluzioni revisione. FOPer ulteriori informazioni sui requisiti di input e outpui per il motore di database di SQL Server, fare clic sul numero dell'articolo della Microsoft Knowledge Base riportato di seguito riportato:
967576Requisiti di Microsoft SQL Server Database Engine input/output

ProprietÓ

Identificativo articolo: 167711 - Ultima modifica: venerdý 21 novembre 2003 - Revisione: 3.1
Le informazioni in questo articolo si applicano 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
Chiavi:á
kbmt kbenv kbhardware kbinfo KB167711 KbMtit
Traduzione automatica articoli
Il presente articolo Ŕ stato tradotto tramite il software di traduzione automatica di Microsoft e non da una persona. Microsoft offre sia articoli tradotti da persone fisiche sia articoli tradotti automaticamente da un software, in modo da rendere disponibili tutti gli articoli presenti nella nostra Knowledge Base nella lingua madre dell?utente. Tuttavia, un articolo tradotto in modo automatico non Ŕ sempre perfetto. Potrebbe contenere errori di sintassi, di grammatica o di utilizzo dei vocaboli, pi¨ o meno allo stesso modo di come una persona straniera potrebbe commettere degli errori parlando una lingua che non Ŕ la sua. Microsoft non Ŕ responsabile di alcuna imprecisione, errore o danno cagionato da qualsiasi traduzione non corretta dei contenuti o dell?utilizzo degli stessi fatto dai propri clienti. Microsoft, inoltre, aggiorna frequentemente il software di traduzione automatica.
Clicca qui per visualizzare la versione originale in inglese dell?articolo: 167711
LE INFORMAZIONI CONTENUTE NELLA MICROSOFT KNOWLEDGE BASE SONO FORNITE SENZA GARANZIA DI ALCUN TIPO, IMPLICITA OD ESPLICITA, COMPRESA QUELLA RIGUARDO ALLA COMMERCIALIZZAZIONE E/O COMPATIBILITA' IN IMPIEGHI PARTICOLARI. L'UTENTE SI ASSUME L'INTERA RESPONSABILITA' PER L'UTILIZZO DI QUESTE INFORMAZIONI. IN NESSUN CASO MICROSOFT CORPORATION E I SUOI FORNITORI SI RENDONO RESPONSABILI PER DANNI DIRETTI, INDIRETTI O ACCIDENTALI CHE POSSANO PROVOCARE PERDITA DI DENARO O DI DATI, ANCHE SE MICROSOFT O I SUOI FORNITORI FOSSERO STATI AVVISATI. IL DOCUMENTO PUO' ESSERE COPIATO E DISTRIBUITO ALLE SEGUENTI CONDIZIONI: 1) IL TESTO DEVE ESSERE COPIATO INTEGRALMENTE E TUTTE LE PAGINE DEVONO ESSERE INCLUSE. 2) I PROGRAMMI SE PRESENTI, DEVONO ESSERE COPIATI SENZA MODIFICHE, 3) IL DOCUMENTO DEVE ESSERE DISTRIBUITO INTERAMENTE IN OGNI SUA PARTE. 4) IL DOCUMENTO NON PUO' ESSERE DISTRIBUITO A SCOPO DI LUCRO.
Dichiarazione di non responsabilitÓ per articoli della Microsoft Knowledge Base su prodotti non pi¨ supportati
Questo articolo Ŕ stato scritto sui prodotti per cui Microsoft non offre pi¨ supporto. L?articolo, quindi, viene offerto ?cosý come Ŕ? e non verrÓ pi¨ aggiornato.

Invia suggerimenti

 

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