在 SQL Server 2019 上測試我們的工作負載時,與 SQL Server 2014 上的相同測試相比,我們體驗到更高的 CPU 使用率
我們正準備將我們的 SQL Server 2014 系統升級到 SQL Server 2019。作為盡職調查的一部分,我們創建了一個工作負載,我們正在針對這兩個系統進行測試。我們觀察到的情況如下:
- SQL Server 2019 上的查詢性能平均快了 50% 左右 - 好!
- SQL 2019 上的讀取量減少了約 40% - 好!
- CPU 使用率平均高出約 30% - 不好。最後一點是引起我們關注的原因。這是否意味著我們必須計劃在遷移到 SQL Server 2019 的過程中增加 CPU 容量?
從稍微不同的角度描述我們看到的情況:當我們嘗試通過推動更高數量的查詢/秒來增加工作負載時,我們看到SQL Server 2019 的吞吐量較低,因為我們更早地耗盡了 CPU 並因此開始看到錯誤。
我希望這是有道理的,我想知道其他人是否有類似的經歷?
首先:對於相同的工作量,CPU 使用率*真的更高嗎?*由於性能提高了 50% 在任何給定時間段內平均完成了 33% 的工作,因此使用多 30% 的 CPU 資源取消了使用相同數量的 CPU 來完成相同數量的工作,只是在更短的時間內的時間。更少的頁面訪問可以解釋這一點:CPU 在工作位之間等待 IO 完成的時間更少。
當然,這取決於您如何測量 CPU 使用率 - 請記住,對於現代 CPU,某些讀數可能非常不准確(請參閱https://aaron-margosis.medium.com/task-managers-cpu-numbers-are-all-but -meaningless-2d165b421e43以及其他類似文章)。我們需要更多關於您如何進行測量的詳細資訊,以提供真正有用的答案。
我們看到 SQL 2019 的吞吐量較低,因為我們更早地使用了 CPU
同樣,我們需要知道您是如何測量吞吐量的。儘管如上所述,您可能會更早地使用 CPU,因為需要較少的 IO。
另外:您是否比較了不同版本的執行之間使用的查詢計劃?在更新的引擎下,一些正在送出的查詢可能會獲得不太理想的計劃 - 基數估計等方面的差異通常是有益的,但因為它們只是猜測可能會適得其反。
並因此開始看到錯誤
永遠不要簡單地報告“我遇到錯誤”。你看到了什麼錯誤?