web-dev-qa-db-ja.com

DBCC TRACEON(3502、3504、3605、-1)を実行するときにログを解釈する方法

I/Oに関連するパフォーマンスの問題を発見するためにブログで推奨されていたので、DBCC Traceon(3502、3504、3605、-1)を使用しています。 MS SQL Server 2008 R2 SP1を実行しています

SQLログファイルの結果は次のようになります(数値は少しごまかしています)。

チェックポイント終了を記録しようとしています

最後のターゲットは未処理2、avgWriteLatency 40ms

平均スループット:0.67 MB /秒、I/O飽和:79、コンテキストスイッチ201

FlushCache:1447ミリ秒で、69書き込みで125ブフをクリーンアップしました(新しいダーティバフは0を回避しました)

Ckpt dbid 9フェーズ1終了(8)

チェックポイントの開始を記録しようとしています。

これを読む方法がわからない、または本当に意味のあるものを得る方法でそれを分解する。

「最後の目標未達」とはどういう意味ですか? "

平均書き込みレイテンシは、書き込みごとにかかるオーバーヘッド時間を意味しますか?または書き込み間の時間? 40msは高いようですが、物理ドライブは1TBで、RAID5が構成されています。

I/O飽和とは何ですか?

コンテキストスイッチとは何の関係がありますか。コンテキストスイッチはマルチタスクに関係していると思います。ジョブ/書き込み間の変更。

FlushCache。これはキャッシュをクリアすることに関係していることを理解しています。バフとは何ですか?これらのページのデータを書き込む必要がありますか?汚いバフとは何ですか?なぜ彼らは避けられるのでしょうか?

詳細な内訳をいただければ幸いです。

3
meltdownmonk

オンにしたトレースフラグは、 チェックポイント が舞台裏で何を行っているかを示します。

  • 3502:チェックポイントの開始と終了時にエラーログに書き込みます
  • 3504:ディスクに書き込まれた内容に関するエラーログ情報に書き込みます
  • 3605:トレース出力をエラーログに送ることができます

上記の詳細については、Paul Randallの ブログ投稿 を参照してください。また、 最適なパフォーマンスのための微調整 には優れた情報があります-特にIn Search of Spikesセクション。

いくつかの本当に内部の読書:

  1. 仕組み:FlushCacheメッセージはいつSQL Serverエラーログに追加されますか?
  2. 仕組み:SQL Serverチェックポイント(FlushCache)未処理のI/Oターゲット
  3. SQL Serverチェックポイントの問題

チェックポイントの動作に直接集中するのではなく、DMVとPerfmon(ディスク関連)を確認することをお勧めします-

  1. sys.dm_io_virtual_file_stats
  2. 物理ディスクオブジェクト:平均ディスクキューの長さ
  3. 平均ディスク秒/読み取り
  4. 平均ディスク秒/書き込み
  5. 物理ディスク:%Disk Time
  6. 平均ディスク読み取り/秒
  7. 平均ディスク書き込み/秒

参照できます I/Oボトルネックの調査

5
Kin Shah

私の答え:

BufsはSQLページであり、8KBページ、8ページ(実体あたり8ページ)(ページのグループ)であり、64KBであり、SQLデータベースファイルの最小ブロックです(ただしログファイルではなく、ログファイルは物理ディスクを使用できます)最小のブロックサイズ、通常512バイト)

したがって、私自身の例では、125ブフは125ページであり、ほぼ1MBのデータが69回の書き込みに広がりました。 125ページを書き込むのに合計1447かかりました(基本的に125x8KBを書き込むのに1447秒)。スループットにかかる時間を倍増すると、書き込まれたデータのサイズが得られ、125に非常に近くなります。

ダーティバフは、ダーティページです。これは、変更されたページですが、キャッシュ以外の変更が反映されていません。

私はまだI/O飽和を理解していません。

書き込みレイテンシの平均は、チェックポイント(1447)を完了するのにかかった時間を書き込み回数で割ったものです。この場合、20.97 msである必要があります。したがって、例で使用した数値は正しくありません。同じログエントリからのものではありません。

このサーバーは統計に基づいてパフォーマンスが低下しているようです。

0
meltdownmonk