web-dev-qa-db-ja.com

SQL Server 2008 R2の高バッファI / Oの原因

ドキュメント管理サーバー用のSQLサーバーのパフォーマンスをトラブルシューティングしようとしていますが、今日のパフォーマンスはかつてないほど低くなっています。

最近セットアップした管理データウェアハウス(MDW)を見ると、バッファI/Oに大きなスパイクが見られます。組み合わされたSQL待機時間は、1500〜2000ミリ秒の範囲内にあり、通常よりかなり高くなっています(約500ミリ秒)。この増加の大部分はバッファI/Oです。

DBAではなく、必要以上にこれを行っているので、私は自分の深みから大きく外れています。

バッファI/Oが大幅に増加した理由を確認する方法はありますか?これは、クエリが大量のデータを取得したためか、SQL Serverのメモリ制限の構成が正しくないためと考えられますか?トラブルシューティングに役立つように照会する必要のある特定の(またはそのことについての一般的な)またはDMVはありますか?

サーバーはSQL Server 2008 R2です。これは、VM 2つのvCPUと8GBを実行しているRAMであり、ディスクはSAN上の別のアレイでホストされています。

enter image description here

上記のグラフはすべて、SQL Server Management Data Warehouse を使用して生成されました。

8
Tim Alexander

待機グラフを注意深く見ると、色付きのバーは実際にはI/O待機ではなくロック待機を示しています。

また、I/Oグラフは、SQL Serverのディスク使用量ではなく、systemのディスク使用量の増加を示しています。

システム使用率が時間とともに増加するにつれて、メモリグラフがシステムメモリサイズに近づいていることを考えると、インスタンスは現在の最大サーバーメモリ設定(または最大サーバーメモリ設定がまったく設定されていない)に対してオーバーコミットされていると思います。より多くのSQL Serverメモリプールがディスクにスワップしています。

解決策は、サーバーの最大メモリ設定を下げる(または、設定されていない場合は適切な値に設定する)ことです。同様のシナリオからの詳細な回答については、私の回答 ここ と私のブログ投稿を参照してください。

SQL Serverのメモリがオーバーコミットされていますか?

9
Jon Seigel