web-dev-qa-db-ja.com

SQL Serverは遅いが、CPUは正常

仮想サーバーでホストされているSQLServerで問題が発生しています。単純な選択を実行するだけでも数分かかる短い期間が時々あります。この期間中、サーバーのCPUとメモリの使用量は正常に見えます。パフォーマンスモニターを使用してサーバーの基本的な監視を実行しましたが、これでは何も発見されておらず、アイデアがありません。問題を診断するための次のステップは何でしょうか?

編集:

サーバーで発生している問題の唯一の兆候は、「SQLServerが完了までに15秒以上かかるI/O要求がx回発生した」ことを通知するイベントログメッセージです。

3
Rob Bell

典型的なI/Oの問題のように聞こえます(ええと、それはあなたがすでに投稿したものです):)

私は通常Windowsを実行していませんが、基本的な問題は同じです。

  • それはランダムに発生しますか、それとも特定の時間に発生しますか
    • 指定された時間内にバックアップを実行していますか
    • バッチジョブはありますか
    • あなたが知らないバッチジョブはありますか(はい、再確認してください、自動化された方法でクライアントから「バッチジョブ」を送信する男/女かもしれません)
    • ディスク全体を通過する必要がある厄介なクエリを実行しているマーケティング/開発者
    • かなりの時間がかかるため、これらの人々は通常、クエリが終了して別のクエリを開始する前にクライアントを強制終了し、それによってさらに多くのI/Oを作成します。
  • ディスクは正常ですか?
  • マシン上で実行されている他のI/Oバウンドサービスはありますか
  • ネットワーキング? (エラーメッセージによると、は問題ではないはずですが、マーフィーは決して眠りません)
  • サーバーの使用状況に関する履歴データは何ですか?
  • ファイルシステムがいっぱいになっていますか?
  • 誰かが(意図的かどうかにかかわらず)優先順位を変更しましたか?
3
serverhorror

速度低下は、CPUまたはディスクのボトルネックか、使用できないネットワークリソースを待機するなどの何らかのタイムアウトである必要があります。 CPUは問題ないとおっしゃっていますが、PerfMonの平均ディスクキューの長さとディスクバイト/秒を確認しましたか?イベントログに関連するエラーはありますか?

FWIW Hyper-V VMで実行されているSQL2005(標準およびワークグループ)サーバーがいくつかあり、それらは正常に動作するため、固有の問題はありません。

JR

2
John Rennie

ほとんどの場合、問題はこのVMと同じ物理ホスト上の他のリソースとの間のリソースの競合であるか、ホスト自体に主要なアクティビティがあります(バックアッププロセスの実行によるI/Oが多いですか?) 。

もう1つの可能性は、仮想サーバーがディスクI/Oを多用する処理(他の、より大きな、またはより複雑なSQLクエリを同時に実行する)でビジー状態であり、単純な選択がディスクからの読み取りも試みていることです。 I/O競合によるプロセスのブロックは、CPUビジーとして表示されません。ただし、単純な選択が単純だがクエリが多い行でない限り、このような状況でも「数分」かかるとは思わないため、ホストリソース(おそらくI/O帯域幅)の競合が発生する可能性が高くなります。

2
David Spillett

SQLの速度を低下させるものがある場合、それはディスクの速度が遅いか、パーティションが正しく配置されていないことです。 VMとEquallogic SAN for diskを使用して、SQL 2008インスタンスを実行すると、物理SQLボックスのいずれよりも優れたパフォーマンスを発揮します。

1
BillMorton

仮想サーバーがまったく問題を示さない場合は、ホストサーバーに問題がある可能性があります。これらの問題は、各仮想サーバーに仮想CPUを配置しすぎるとよく見られ、物理ホストのCPUをブロックする可能性が高くなります。

0
pauska

答えはすでに他の回答の1つに含まれていると思います。ただし、EXEC sp_Who2を実行し、「単純なクエリ」が何らかの長時間実行される更新などによってブロックされていないことを確認することも価値があります。

私は以前、いくつかのひどいロックの習慣があるMSAccessリンクテーブルに巻き込まれました。

0
Joel Mansford

Host/sql vm(local、iscsi(hw/sw)、nfs、san、sas、sata、vendorなど)をサポートするストレージについてもう少し教えてください。あなたの最近のコメントから、より綿密に調べるための良い道のように聞こえます。

ハイパーバイザー(および場合によってはホストOS)を教えてください。そうすれば、人々はあなたの状況についてより直接的に話すことができます。

0
Jeff Hengesbach