INF: タイムアウト bufwait と writelog メッセージを理解します。

文書翻訳 文書翻訳
文書番号: 167711 - 対象製品
すべて展開する | すべて折りたたむ

概要

SQL Server のエラーログを調べる場合、次のメッセージの型を定期的に表示することがあります。
bufwait: BUF_IO タイムアウト bp 0x5e74e PG 統計 0x1008/0x400003 0x6d4f8c1b obj 0x2069e1f0 bpss 0xd37ab0
-Or-
writelog : dbstat2 0x22(0x22) 2 dbid タイムアウト q1/q2 所有者 0/1 = 3 waittype = 0x81
この資料では、タイムアウト bufwait と writelog メッセージの意味について説明します。

詳細

SQL Server が SQL Server 読み取るを実行する場合、非同期の I/O 呼び出しReadFile()WriteFileEx()とReadFileEx()とWriteFile()を使用し、書き込みます。 これらの Win32 API 呼び出しが Windows NT Server の I/O 要求を送信し、アプリケーションが操作が完了するのを待つ間に、アプリケーションが他の操作で続行されるのを次に許可します。 完了時に書き込みがイベントまたは完了同期ルーチンで完了したことをアプリケーションに通知します。

実際警告、で、必ずしも bufwait と logwrite メッセージがコンピュータまたは SQL Server の問題がある否定です。 SQL Server が10秒が既定でどちらなの「リソース設定しているタイムアウト」に構成された秒数より長く待機するならば、タイムアウトを示すエラー メッセージを出力します。 ただし、続行する前に、完了するための I/O 要求を待機することを続行する必要があります。 キャッシュに配置するディスクからページを読み取るまたはディスクにキャッシュのページをフラッシュすることに遅延に対応する bufwait メッセージ。 logwrite メッセージは、ログ レコードを読み取るまたは書き込むのに固有です。

SQL Server は、トランザクション ログの順序付きアクセスを保証するために、通常のスレッド同期メソッドを使用します。 writelog タイムアウト メッセージにデータベース ID は、 dbid フィールドと共に待機しているほかの接続のプロセス ID(所有者)に指定されます。 上記のサンプル メッセージのそれがチェックポイント プロセスを待機しているそして、(所有者= 3 )現在が処理する通知が tempdb(2 dbid)を使用していました writelog タイムアウトの原因を調査するとき、どんな種類の処理は、実行されてかいるについて、情報を収集するのがクエリ定期的 sysprocesses に有益かもしれません。

writelog タイムアウトに寄与するとして、重いロールバック アクティビティが他ログ I/O 競合ディスクを追加し、こうしたアクティビティが確認されます。 最高のパフォーマンスを、さらに、不要のロールバックが発生することで問題が exacerbate できるので、ロールバックされる必要があるトランザクションの数を最小限とするとします。 新しい構成オプション、 LogLRU バッファ SQL Server 6.5 Service Pack 2 での開始は、それがロールバックまたはトリガの処理に必要のよう重いログ読み取るを必要とする環境でのパフォーマンスを向上させるのに追加されました。 データ利用可能なキャッシュの量を減らすようキャッシュにログ ページを保持するために、このオプションを使用するのが領域を確保するように注意します。 このパラメータの最適な価値の判定での詳細について Service Pack に含まれた Readme.txt ファイルを参照してください。

これらのメッセージがのみ断続的に表示される場合、問題があるのは示せません。 ただし、記号は、ディスク サブシステムが容量に達していることそして操作が完了するのを待たなければならない時間の長さを減らすために、コントローラの数がより多いまたはディスクに I/O 負荷を広げるのが得るかなり通常それらが表示される場合、記号かもしれません。

何がディスク サブシステムを読み込むのか決定するのが処理していて、システムに適切なディスク カウンタを見るために、パフォーマンス モニタが使用できます。 ログとデータ デバイスに対応する;値が常に高い場合、 I/O 負荷を広げそしてディスク サブシステムが制限に達する指示を探し方法を検討する LogicalDisk または;検討する PhysicalDisk のために、% Disk Time カウンタを監視します。 細かい使用できる% ディスク書き込む時間 カウンタが ディスク読み取る時間 %を使用すると、追加細かい調整が実行でき、ディスクとコントローラに I/O 負荷を割り当てるのに制御します。 I/O を広げる追加コントローラが I/O 要求で大きなバックログを示す大きな Disk Queue Length 値さらに、ディスクを追加することを調べることができ、または読み込まれます。 Windows NT Server ドキュメントと Windows NT Server リソース キット と次のサポート技術情報(Microsoft Knowledge Base)の資料にディスク カウンタに関する追加情報を記載します。
102020: パフォーマンス モニタでのディスクのパフォーマンスを監視する方法

これらのメッセージが遅延から I/O を実行することへ出力されるうちに、 SQL Server の構成値がいくつかシステムの全体の I/O スループットに直接影響を与えます。:入出力非同期なのと max 入出力 lazywrite と logwrite スリープとリソース タイムアウトを max します。

max「入出力 async」構成値によって未処理の非同期の I/O の最大数が SQL Server が要求の保留の番号を制限するのを許可するように要求するのが決まります。 オーバーヘッド非同期に I/O を要求するとき、 Windows NT Server がキューにちなむことを持つ要求を入れられる必要があります。 パフォーマンスに適切に使用場合、非同期の I/O 要求がパフォーマンスを向上させるうちに、詳細使用が位置でシステムのパフォーマンスが低下するのを実際開始できる制限に到達できます。 この制限は、コントローラとドライバと関連付けられたディスク サブシステムによって大きく異なります。 上記のエラーのすべてが永続的に発生し、そして既定値から永続的にこんな設定を変更する場合、再度既定値に設定するのを検討します。



「max 入出力 lazywrite」パラメータが max「入出力 async」設定と密接に関係します。ただし、レイジー プロセスによって作成された未解決の要求の数を特に制限します。 レイジー プロセスは、データ キャッシュに空き領域の一部が常にあるようにキャッシュから変更されたディスクへのページをフラッシュするのを試みます。 プロセスが領域が空き保持するのを試みる容量は、空き「バッファ」設定オプションによって制御されます。

「logwrite スリープ」構成設定は詳細ディスクにログ ページを書き込む前に、意図的な遅延を強制的に実行する設定オプションです。 データ変更が行われる前、ディスクのためにログ ページが物理的にコミットされる必要があるので、通常可能な限り、すばやいとして実行された書き込みが欲しいです。 特定の状況で、したがって複数のプロセスが1 ページにログ レコードが「パックでき、」そして書き込み操作の数を短縮するように、遅延を意図的に強制することでパフォーマンスの向上できます。 「logwrite スリープ」構成設定が強化されることで writelog タイムアウトが人為的に仕向けるよう、長さがこの意図的な遅延に使用される時間の長さが全体的な書き込み操作のタイムアウト期間の一部としてカウントされます。 制御された方法でこの構成値の Changes は、パフォーマンスが妨げられないことを保証するのに行われるのみ必要があります。



「リソース タイムアウト」構成設定は、非同期の I/O 操作に関する全体的なタイムアウトを制御します。 任意の操作は、それがタイムアウト警告の結果を完了するために、メソッドが10秒よりより長く受け取るよう、既定で、設定が 10(秒)に設定されます。 この値を非常に低く設定することにより unrealistically 短い回にタイムアウトが発生することがあります。 bufwait または writelog タイムアウトを頻繁に表示している場合、これらのエラーが生成される頻度を減らすために、この設定を増やすことができます。

また、したがって SQL Server が I/O サブシステムを広範囲に強調するので、最新ドライブと共にコントローラ ファームウェアと共に最新のドライバのバージョンに実行していることを確認するのが重要です。 また、ハードウェアの製造元に任意のディスク サブシステムを強調するために、持つ可能性がある診断に問い合わせます。

問題の解決に上記の情報が役立たないならば、 SQL Server が行うそれに同じ方法でのシステムを強調するのを検討することができます。 これを実行することに支援するために、 SQLHDTST と呼ばれるユーティリティが開発されています。 ダウンロードされるユーティリティと場所のと詳細については、次の Microsoft Knowledge Base の資料を参照してください。
178444 SQL Server ユーティリティは、利用可能提出します。

プロパティ

文書番号: 167711 - 最終更新日: 2003年11月21日 - リビジョン: 3.0
この資料は以下の製品について記述したものです。
  • Microsoft SQL Server 6.0 Standard Edition
  • Microsoft SQL Server 6.5 Standard Edition
キーワード:?
kbenv kbhardware kbinfo KB167711 KbMtja kbmt
機械翻訳の免責
重要: このサポート技術情報 (以下「KB」) は、翻訳者による翻訳の代わりに、マイクロソフト機械翻訳システムによって翻訳されたものです。マイクロソフトは、お客様に、マイクロソフトが提供している全ての KB を日本語でご利用いただけるように、翻訳者による翻訳 KB に加え機械翻訳 KB も提供しています。しかしながら、機械翻訳の品質は翻訳者による翻訳ほど十分ではありません。誤訳や、文法、言葉使い、その他、たとえば日本語を母国語としない方が日本語を話すときに間違えるようなミスを含んでいる可能性があります。マイクロソフトは、機械翻訳の品質、及び KB の内容の誤訳やお客様が KB を利用されたことによって生じた直接または間接的な問題や損害については、いかなる責任も負わないものとします。マイクロソフトは、機械翻訳システムの改善を継続的に行っています。もし誤訳を発見された場合には、この KB 下部よりフィードバックをお寄せください。
英語版 KB:167711
"Microsoft Knowledge Baseに含まれている情報は、いかなる保証もない現状ベースで提供されるものです。Microsoft Corporation及びその関連会社は、市場性および特定の目的への適合性を含めて、明示的にも黙示的にも、一切の保証をいたしません。さらに、Microsoft Corporation及びその関連会社は、本文書に含まれている情報の使用及び使用結果につき、正確性、真実性等、いかなる表明・保証も行ないません。Microsoft Corporation、その関連会社及びこれらの権限ある代理人による口頭または書面による一切の情報提供またはアドバイスは、保証を意味するものではなく、かつ上記免責条項の範囲を狭めるものではありません。Microsoft Corporation、その関連会社 及びこれらの者の供給者は、直接的、間接的、偶発的、結果的損害、逸失利益、懲罰的損害、または特別損害を含む全ての損害に対して、状況のいかんを問わず一切責任を負いません。(Microsoft Corporation、その関連会社 またはこれらの者の供給者がかかる損害の発生可能性を了知している場合を含みます。) 結果的損害または偶発的損害に対する責任の免除または制限を認めていない地域においては、上記制限が適用されない場合があります。なお、本文書においては、文書の体裁上の都合により製品名の表記において商標登録表示、その他の商標表示を省略している場合がありますので、予めご了解ください。"

フィードバック

 

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