実稼働環境にはいくつかのdbサーバーがあり、そのうち4つはハードウェア構成が非常に似ています。Dell PowerEdge R620、唯一の違いは、最新の2つ(3か月前に購入および構成されたもの)にRAIDコントローラーv710、256GB RAM、およびCPUが2つの物理Xeon E5-2680 2.80GHzであることです。古いもの(約1年前に購入および構成されたもの)には、RAIDコントローラーv700、128GB RAMがあり、2つの物理Xeon E5-2690 2.90GHzで実行されています。BIOSの更新、すべてのドライバーの最新バージョンへの更新など。実行中のすべてのSQL Server 2008R2 Enterprise(SP1)が最新のCUおよびWindows 2012R2 Standardに更新されました。どちらも200 GB SSD x5 RAID10で動作します。それぞれで実行されているデータベースは1つだけで、SSISパッケージを呼び出すジョブを使用して同期されます。私たちのシステム管理者は、ハードウェアやネットワークの設定ミスや失敗がないことを確認するために、多くのパフォーマンスとストレステストを実行しました。予想通り、最新のものはより良いパフォーマンス結果を示しています。ここまでは順調ですね。
私たちが抱えている問題は、Kibanaの画面キャプチャーで確認できます。黄色とオレンジは2つの新しいサーバー(テーブルでは6、7)で、他のすべてのサーバーの下にあります。これらの2つの新しいサーバーの応答時間が遅いことが完全にわかります。それだけでなく、これらの2つのサーバーの負荷も、2つの古いサーバーよりもわずかに少なくなっています(表の淡い青色と濃い青色の線-4,5)。
パフォーマンスカウンターに関する情報を収集するいくつかの監視スクリプトを用意します。DMVと3番目の監視ツールで可能な限り掘り下げたので、私は多くの情報を手元に持っています。しかし、この遅い応答時間に対する答えを見つけることができないため、ここで見逃していることがあるはずです。
最新の2台のサーバーはRAMの使用量が少ないですが、他の古いサーバーと比較すると、負荷が低いため、それは予想通りです。
| Server Name| Mem_MB | Mem_GB | Server_RAM_GB | SQL_max_mem_GB| SQL_min_mem_GB |
|------------|--------|--------------|---------------|---------------|----------------|
| 4 | 41108 | 40.145263671 | 128 | 120 | 16 |
| 5 | 61272 | 59.836425781 | 128 | 120 | 16 |
| 6 | 34117 | 33.317626953 | 256 | 250 | 16 |
| 7 | 33764 | 32.972656250 | 256 | 250 | 16 |
すべてのサーバーの追加のRAM構成は次のとおりです。
| Server Name | Total_Page_File_In_MB | Available_Page_File_MB | Kernel_Paged_Pool_MB | Kernel_Nonpaged_Pool_MB |
|-------------|-----------------------|------------------------|----------------------|-------------------------|
| 4 | 180160 | 130042 | 249 | 98 |
| 5 | 148416 | 77246 | 249 | 110 |
| 6 | 301010 | 260453 | 132 | 99 |
| 7 | 301010 | 260454 | 143 | 108 |
すべてのサーバーで次のクエリを実行すると、同じ構成パラメーターが表示されます。
SELECT * FROM master.sys.configurations
もっと多くの情報を表示し続けることはできますが、何が必要になるかはよくわかりません。何をチェックすべきかについての手がかりはありますか?
SQL Server 2008での MS トラブルシューティングパフォーマンスの問題に関する既知のホワイトペーパーを読み、そこから多くのDMVクエリを取得しました。
リクエストに応じて編集:
EXEC sp_configure 'max server memory (MB)'
| Server Name | name | minimum | maximum | config_value | run_value |
|-------------|------------------------|---------|------------|--------------|-----------|
| 4 | max server memory (MB) | 16 | 2147483647 | 120000 | 120000 |
| 5 | max server memory (MB) | 16 | 2147483647 | 120000 | 120000 |
| 6 | max server memory (MB) | 16 | 2147483647 | 250000 | 250000 |
| 7 | max server memory (MB) | 16 | 2147483647 | 250000 | 250000 |
用としてmaxdop
、私たちはそれで遊んでてきたし、結果は以下のとおりです。
EXEC sp_configure 'max degree of parallelism'
| Server Name | name | minimum | maximum | config_value | run_value |
|:-----------:|:-------------------------:|:-------:|:-------:|:------------:|:---------:|
| 4 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 5 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 6 | max degree of parallelism | 0 | 1024 | 1 | 1 |
| 7 | max degree of parallelism | 0 | 1024 | 1 | 1 |