INF: Verstehen Bufwait und writelog beim Timeout Nachrichten

SPRACHE AUSWÄHLEN SPRACHE AUSWÄHLEN
Artikel-ID: 167711 - Produkte anzeigen, auf die sich dieser Artikel bezieht
Alles erweitern | Alles schließen

Zusammenfassung

Beim Untersuchen der SQL Server-Fehlerprotokoll möglicherweise die folgenden Arten von Nachrichten in regelmäßigen Abständen angezeigt:
Bufwait: Timeout, BUF_IO, 0xd37ab0, 0x5e74e, Pg Stat 0x1008/0x400003, Obj 0x6d4f8c1b, Bpss 0x2069e1f0 bp
-oder-
writelog beim: Timeout Dbid 2 dbstat2 0x22(0x22) q1-q2 0/1, Besitzer = 3 Wartetyp = 0x81
Dieser Artikel beschreibt die Bedeutung der Bufwait und writelog beim Timeout Nachrichten.

Weitere Informationen

SQL Server die asynchrone e/a-Aufrufe ReadFile(), ReadFileEx(), WriteFile() und WriteFileEx() verwendet, beim Ausführen liest und schreibt. Diese Win32 API-Aufrufe eine e/a-Anforderung mit Windows NT Server senden und lassen Sie die Anwendung mit anderen Vorgängen weiterhin warten des Vorgangs abgeschlossen ist. Bei Abschluss signalisiert es der Anwendung, dass der Schreibvorgang, über eine Synchronisierung Ereignis oder Abschluss Routine abgeschlossen hat.

Die Bufwait und Logwrite Nachrichten tatsächlich Warnungen und möglicherweise ein Anzeichen für jedes Problem mit dem Computer oder der SQL Server nicht unbedingt. Wenn SQL Server länger als die Anzahl der Sekunden, die in der Einstellung "Resource Timeout' konfiguriert gewartet wurde (die Standardeinstellung ist 10 Sekunden), wird eine Fehlermeldung, die das Timeout angibt gedruckt. Es muss jedoch weiterhin warten auf die e/A-Anforderung zum Abschließen, bevor Sie fortfahren kann. Die Bufwait-Nachricht entspricht, zu einer Verzögerung in Lesen einer Seite vom Datenträger im Cache ablegen oder Wegschreiben einer Seite im Cache, auf den Datenträger. Die Nachricht Logwrite ist spezifisch für Lesen oder Schreiben der Protokolldatensätze.

SQL Server verwendet normalen Thread Synchronisierungsmethoden um geordneten Zugriff auf das Transaktionsprotokoll zu gewährleisten. In eine Timeoutnachricht writelog beim wird die Datenbank-ID bereitgestellt, in der Dbid-Feld sowie die PROZESSKENNUNG (Besitzer) der anderen Verbindung auf der er wartet. In der oben genannten Beispiel Nachricht wurde Beachten Sie, die der aktuellen Prozess Tempdb (Dbid 2) verwenden, und, die er wartet auf die Prüfpunkt-Prozess (Besitzer = 3). Beim Untersuchen der Ursache des writelog beim Timeouts ist es möglicherweise vorteilhaft sein, in regelmäßigen Abständen Abfrage Sysprocesses zum Sammeln von Informationen, welche Arten von Verarbeitung durch die in der Meldung writelog beim aufgeführten "Besitzer" Spid ausgeführt werden.

Starker Rollback Aktivität hinzugefügt werden, zusätzliche Protokoll und Datenträger-e/A-Konflikte, und solche Aktivität hat als Mitarbeit an writelog beim Timeouts beobachtet wurde. Versuchen Sie um eine optimale Leistung zu erzielen, die Anzahl der Transaktionen zu minimieren, die ein Rollback; ausgeführt werden muss, als Aktivität auf die Server steigt, verwenden ein Abfragetimeout, die zu kurz ist weiter das Problem durch unnötige Rollbacks verursacht exacerbate kann. Beginnend mit SQL Server 6.5 Service Pack 2, eine neue Konfigurationsoption, LogLRU-Puffer wurde hinzugefügt, die möglicherweise verbessern der Leistung in Umgebungen erfordern starker Protokoll liest, wie z. B. bei der Verarbeitung einer Rollback oder einem Trigger erforderlich sein. Beachten Sie, die mit dieser Option Speicherplatz für Protokolldateien Seiten im Cache, reserviert die Menge des verfügbaren Datencache verringert. Finden Sie in der Datei Readme.txt in Servicepack Weitere Informationen zum Bestimmen eines optimalen Wert für diesen Parameter enthalten.

Wenn diese Nachrichten nur zeitweise angezeigt werden, möglicherweise nicht auf ein Problem hinweisen werden. Jedoch sollten regelmäßig ziemlich angezeigt werden, es möglicherweise ein Vorzeichen, die das Datenträgersubsystem Kapazität erreicht ist, und profitieren Sie möglicherweise von der Zuweisung der e/A-Auslastung über eine größere Anzahl von Domänencontrollern oder Datenträger, um die Zeitdauer zu verringern, Sie warten, bis der Vorgang abgeschlossen müssen.

Um festzustellen, was das Datenträgersubsystem laden behandeln, können Sie Systemmonitor verwenden, die Leistungsindikatoren für Ihr System geeignete überwachen. Überwachen Sie den Leistungsindikator % Zeit logischer und/oder physikalischer Datenträger, die Ihre Protokoll- und Geräte entsprechen; Wenn der Wert konstant hoch ist, sollten Sie Möglichkeiten, die e/A-Last zu verteilen und suchen Sie nach Anzeichen, dass das Festplatten-Teilsystem die Grenzwerte erreicht ist. Sie können zusätzliche Feinabstimmung mithilfe der % Zeit lesen und % Schreiben Zeit Leistungsindikatoren, die genauer steuern in verteilen die e/A-Last auf dem Datenträger und Controller. Großer Warteschlangenlänge Wert gibt einen großen Rückstand in e/a-Anforderungen an und Sie möglicherweise untersuchen weitere Festplatten hinzuzufügen möchten, oder zusätzliche Domänencontroller, der e/a-laden. Weitere Informationen zu Datenträger-Leistungsindikatoren finden Sie in der Dokumentation zu Windows NT Server, Windows NT Server Resource Kit und im folgenden Artikel der Microsoft Knowledge Base:
102020: Überwachen der Datenträgerleistung mit dem Systemmonitor

Während diese Nachrichten aus Verzögerung bei der Durchführung von e/A führen, haben mehrere SQL Server-Konfigurationswerte direkte Auswirkungen auf die allgemeine e/a-Durchsatz des Systems: max Async-e/A; max Lazywrite e/A; Logwrite Sleep; und Resource Timeout.

Der 'max Async-e/A' Konfigurationswert bestimmt die maximale Anzahl der ausstehenden asynchronen e/A-Anforderungen SQL Server, dass Beschränkung der Anzahl ausstehender Anforderungen. Wenn eine asynchrone e/A-Anforderung erfolgt, muss Windows NT Server die Anforderung über eine zugeordnete Warteschlange Aufwand. Während der asynchrone e/A-Anforderungen Leistung bei entsprechend erhöhen können, kann ein Limit an welche Stelle weiter verwenden tatsächlich beginnen kann, die Systemleistung beeinträchtigen erreicht werden. Dieser Grenzwert hängt größtenteils der Controller, Treiber und zugeordneten Datenträgersubsystem. Wenn Sie dauerhaft erhalten eine der oben aufgeführten Fehler und haben sich diese Einstellung von seinem Standardwert geändert, sollten Sie es wieder auf den Standardwert einrichten.



Der 'max Lazywrite e/A'-Parameter ist eng mit der Einstellung 'max Async-e/A' aber drosselt speziell die Anzahl der ausstehenden Anforderungen durch den Prozess für verzögertes Schreiben vorgenommen. Der Prozess für verzögertes Schreiben versucht, die geänderte Seiten aus dem Cache auf dem Datenträger zu leeren, sodass immer einige Speicherplatz im Datencache vorhanden ist. Der Speicherplatz, der der Prozess, versucht auf frei zu halten wird durch die Konfigurationsoption 'free Buffers' gesteuert.

Die Konfigurationseinstellung 'Logwrite Sleep' ist eine erweiterte Konfiguration-Option, die eine absichtliche Verzögerung vor dem Protokollseiten auf den Datenträger schreiben. Da die Protokollseiten physisch bestrebt sein müssen, Datenträger, bevor die Datenänderungen vorgenommen werden, möchten Sie in der Regel diese schreibt so schnell wie möglich ausgeführt werden. Unter bestimmten Umständen können Sie die Leistung verbessern, absichtlich eine Verzögerung erzwingen, damit mehrere Prozesse "" Protokolldatensätze auf einer einzelnen Seite Pack und somit die Anzahl der Schreibvorgänge verringern können. Die Zeitspanne, in diese beabsichtigt Verzögerung verwendet wird als Teil des Zeitlimits für die gesamte Schreiboperation gezählt, damit ein Timeout writelog beim künstlich erhöhen die Konfigurationseinstellung 'Logwrite Sleep' hervorgerufene möglicherweise. Änderungen an diesem Konfigurationswert sollte nur auf kontrollierte Weise vorgenommen werden, um sicherzustellen, dass die Leistung nicht beeinträchtigt wird.



Die 'Resource Timeout' Konfigurationseinstellung steuert allgemeine Timeout für die asynchronen e/a-Operationen. Standardmäßig die Einstellung auf 10 festgelegt (Sekunden), damit jede Operation, dauert länger als 10 Sekunden Ergebnisse in eine Timeout-Warnung. Wenn dieser Wert zu niedrig kann Timeouts in eine unrealistically kurzer Zeit führen. Wenn Bufwait oder writelog beim Timeouts häufig angezeigt wird, können Sie diese Einstellung, um die Häufigkeit zu reduzieren, mit der dieser Fehler generiert werden, erhöhen.

Da SQL Server e/a-Subsystem so umfassend belasten, ist es auch wichtig zu überprüfen, dass Sie mit der neuesten Version von dem Laufwerk und Controller Firmware sowie die neuesten Treiber ausgeführt werden. Auch finden Sie den Hersteller Ihrer Hardware Diagnose kann für das Datenträgersubsystem Stresstesten verfügen.

Falls der oben genannten Informationen nicht das Problem zu beheben, sollten Sie berücksichtigen, Stresstesten das System in einem ähnlich, die von SQL Server ausgeführt. In Ihnen dies dabei helfen, hat ein Dienstprogramm namens SQLHDTST geschrieben wurden. Weitere Informationen über das Dienstprogramm und Speicherorte von denen es gedownloadet werden kann, finden Sie unter den folgenden Artikel der Microsoft Knowledge Base:
178444SQL Server-Dienstprogramm Dateien verfügbar
SQL Server erfordert Systeme unterstützen ? garantierte Übermittlung mit stabilen Medium ? wie beschrieben unter das Programm Microsoft SQL Server Always-On Storage Solution überprüfen. FOWeitere Informationen zu den Eingabe- und Anforderungen für die SQL Server Datenbank-Engine finden Sie im folgenden Artikel der Microsoft Knowledge Base:
967576Microsoft SQL Server Engine E/A-Anforderungen

Eigenschaften

Artikel-ID: 167711 - Geändert am: Freitag, 21. November 2003 - Version: 3.1
Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbmt kbenv kbhardware kbinfo KB167711 KbMtde
Maschinell übersetzter Artikel
Wichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten.
Den englischen Originalartikel können Sie über folgenden Link abrufen: 167711
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Disclaimer zu nicht mehr gepflegten KB-Inhalten
Dieser Artikel wurde für Produkte verfasst, für die Microsoft keinen Support mehr anbietet. Der Artikel wird deshalb in der vorliegenden Form bereitgestellt und nicht mehr weiter aktualisiert.

Ihr Feedback an uns

 

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