仮想サーバーでホストされているSQLServerで問題が発生しています。単純な選択を実行するだけでも数分かかる短い期間が時々あります。この期間中、サーバーのCPUとメモリの使用量は正常に見えます。パフォーマンスモニターを使用してサーバーの基本的な監視を実行しましたが、これでは何も発見されておらず、アイデアがありません。問題を診断するための次のステップは何でしょうか?
編集:
サーバーで発生している問題の唯一の兆候は、「SQLServerが完了までに15秒以上かかるI/O要求がx回発生した」ことを通知するイベントログメッセージです。
典型的なI/Oの問題のように聞こえます(ええと、それはあなたがすでに投稿したものです):)
私は通常Windowsを実行していませんが、基本的な問題は同じです。
速度低下は、CPUまたはディスクのボトルネックか、使用できないネットワークリソースを待機するなどの何らかのタイムアウトである必要があります。 CPUは問題ないとおっしゃっていますが、PerfMonの平均ディスクキューの長さとディスクバイト/秒を確認しましたか?イベントログに関連するエラーはありますか?
FWIW Hyper-V VMで実行されているSQL2005(標準およびワークグループ)サーバーがいくつかあり、それらは正常に動作するため、固有の問題はありません。
JR
ほとんどの場合、問題はこのVMと同じ物理ホスト上の他のリソースとの間のリソースの競合であるか、ホスト自体に主要なアクティビティがあります(バックアッププロセスの実行によるI/Oが多いですか?) 。
もう1つの可能性は、仮想サーバーがディスクI/Oを多用する処理(他の、より大きな、またはより複雑なSQLクエリを同時に実行する)でビジー状態であり、単純な選択がディスクからの読み取りも試みていることです。 I/O競合によるプロセスのブロックは、CPUビジーとして表示されません。ただし、単純な選択が単純だがクエリが多い行でない限り、このような状況でも「数分」かかるとは思わないため、ホストリソース(おそらくI/O帯域幅)の競合が発生する可能性が高くなります。
SQLの速度を低下させるものがある場合、それはディスクの速度が遅いか、パーティションが正しく配置されていないことです。 VMとEquallogic SAN for diskを使用して、SQL 2008インスタンスを実行すると、物理SQLボックスのいずれよりも優れたパフォーマンスを発揮します。
仮想サーバーがまったく問題を示さない場合は、ホストサーバーに問題がある可能性があります。これらの問題は、各仮想サーバーに仮想CPUを配置しすぎるとよく見られ、物理ホストのCPUをブロックする可能性が高くなります。
答えはすでに他の回答の1つに含まれていると思います。ただし、EXEC sp_Who2を実行し、「単純なクエリ」が何らかの長時間実行される更新などによってブロックされていないことを確認することも価値があります。
私は以前、いくつかのひどいロックの習慣があるMSAccessリンクテーブルに巻き込まれました。
Host/sql vm(local、iscsi(hw/sw)、nfs、san、sas、sata、vendorなど)をサポートするストレージについてもう少し教えてください。あなたの最近のコメントから、より綿密に調べるための良い道のように聞こえます。
ハイパーバイザー(および場合によってはホストOS)を教えてください。そうすれば、人々はあなたの状況についてより直接的に話すことができます。