最新伺服器上的性能較低
我們有幾台生產中的數據庫伺服器,其中 4 台具有非常相似的硬體配置。Dell PowerEdge R620,唯一的區別是 2 個最新的(3 個月前購買和配置)具有 RAID 控制器 v710、256GB RAM 和 CPU 是 2 個物理 Xeon E5-2680 2.80GHz。舊的(大約 1 年前購買和配置)具有 RAID 控制器 v700、128GB RAM 並在 witl 2 物理 Xeon E5-2690 2.90GHz 上執行。BIOS 已更新,所有驅動程序已更新至最新版本等。所有執行 SQL Server 2008R2 Enterprise (SP1) 的設備均已更新至最新 CU 和 Windows 2012R2 Standard。兩者都在 200 GB SSD x5 RAID10 上執行。它們每個上只執行一個數據庫,使用呼叫 SSIS 包的作業進行同步。我們的系統管理員已經執行了大量的性能和壓力測試,以確保我們沒有任何硬體或網路未配置或故障。正如預期的那樣,最新的表現出更好的性能結果。到目前為止,一切都很好。
在 Kibana 的螢幕截圖中可以看到我們遇到的問題。黃色和橙色是 2 台較新的伺服器(桌子上有 6,7 台),低於所有其他伺服器。很明顯,這 2 台新伺服器的響應時間較慢。不僅如此,這 2 台伺服器的負載也比 2 台較舊的伺服器少一些(淺藍色和深藍色線 - 桌子上的 4,5)。
有幾個監視腳本收集有關性能計數器的資訊。盡可能用DMV和第三監控工具探勘,我手頭有很多資訊。但是應該有(ofc)我在這裡遺漏的東西,因為我找不到這個較慢的響應時間的答案。
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
我可以繼續顯示更多資訊,但我不完全確定可能需要什麼。關於我應該檢查什麼的任何線索?
我已經閱讀了來自 MS Troubleshooting Performance Problems in SQL Server 2008的已知白皮書,並從那裡獲取了許多 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 |
這張圖片說明了一切。
感謝 Kin 指出您的問題和相關答案。在這個過程中我學到了很多。通過查看您的詳細問題,我想這樣做,比較我們最重查詢的執行計劃……瞧!問題是本應執行的工作已經有幾週的時間了,但計劃被禁用。現在我必須檢查它為什麼被禁用以及何時被禁用。現在一切都在順利進行。藍線是一台伺服器由於維護沒有收到請求,還沒有死。