web-dev-qa-db-ja.com

あるデータベースサーバーではデータベースアクセスが遅いように見えるが、同じサイトを使用している別のサーバーでは遅いように見える理由をどのように判断できますか?

英国とオーストラリアの両方に、2台のWebサーバーと1台のDBサーバーを備えたセットアップがあります。これらのサーバーはRackspaceを使用しており、どちらの状況でもWebサーバーはプライベートIPを介してデータベースサーバーに接続します。それぞれの地域のDBサーバーに接続されている各地域のそれぞれのWebサーバー上の同じWebサイトは、非常に異なるパフォーマンスを生成するようです。

それぞれのWebサーバーとデータベースサーバー間の相互作用は、オーストラリアのサーバーでは英国よりも大幅に遅いようです。これは明らかに、それぞれの場所にあるブラウザからアクションを実行することによるものです。

オーストラリアのDBサーバーは少し異なり、より高速なプロセッサとより多くのメモリを備えています。私は.NET開発者として働いているので、問題が何であるかを判断する方法がよくわかりません。ここで何が起こっているのかを判断し、オーストラリア側のDBアクセスが英国側よりもはるかに遅いように見える理由を解明するにはどうすればよいですか?

さらに違いがあります。オーストラリアのDBサーバーは、古いクラシックaspサイトからリソースをロード/アップロードするクラシックaspページに対してIISを実行しています。これは、多くのメモリを使用していないか、 CPUパワーがあり、ほとんど使用されないため、どのように問題になるかわかりません。私が本当に望んでいるのは、Webサーバーからプロセスのどこでスローダウン/タイミングが発生しているかを確認する方法です。これをやっていますか?

編集-私が気付いたのは、SQLプロファイラーでは、オーストラリアのDBで同じイベントが発生すると、監査ログアウトの期間がはるかに長くなるようです。私が収集できる限り、これは、SQLサーバーへのログイン中に発生するイベントに時間がかかっていることを意味します。これから他に何か判断できるかどうかはわかりません。

1
Rob

これがあなたの状況で私が最初にすることです:

  1. ブレントオザールから Blitz 診断スクリプトをダウンロードして実行します。優先度の高い項目には特に注意を払いますが、必ずレポート全体を確認してください。
  2. 各サーバーのSQLに割り当てられるRAMの量を再確認します。デフォルトでは、SQLには無制限のRAMが割り当てられています。メモリ制限は最大で4GB以下に制限する必要があります。システム内の合計RAMよりも。これらのサーバーで実行されているものが多いほど、SQLの最大メモリとシステムのインストール量の間のスプレッドを大きくする必要があります。ここでの目標はコンピュータに要求されているタスクをサポートするために、OSにRAMが不足していないことを確認してください。RAM飢えています。
  3. Microsoft Sysinternals Suite をダウンロードし、ProcessExplorerを起動します。リソースモニター、特にディスクI/Oを使用して、パフォーマンスのボトルネックを探します。
  4. また、Sysinternals Suiteから、TCPViewを使用して、DBサーバーがアクティブになっている接続の数を確認します。数が数百の場合は、その理由に注意を払い、問題が発生していないことを確認する必要があります。
  5. 最後に、簡単なことを再確認した後、SQLプロファイラーを分解し、遅いクエリやその他の問題を探し始めます。 https://www.red-gate.com/simple-talk/sql/performance/how-to-identify-slow-running-queries-with-sql-profiler/
1
Rob Pearson