超執行緒與 SQL Server 和 PostgreSQL
我已經讀過超執行緒是數據庫的“性能殺手”。但是,我讀到的並沒有說明哪些CPU。此外,它主要表明 I/O 被“降低到 < 10% 的性能”。
這在邏輯上沒有意義,因為 I/O 主要是控制器和磁碟的功能,而不是 CPU。但是沒有人說過錯誤是有道理的。
我讀到的內容還指出,SQL Server可以將兩個並行查詢操作放在 1 個邏輯核心(2 個執行緒)上,從而降低性能。我很難相信 SQL Server 的架構師會做出如此明顯的誤判。
有沒有人有關於目前一代 CPU 上的超執行緒如何影響我提到的任何一個 RDBMS 的數據?
我讀到的內容還指出,SQL Server 可以將兩個並行查詢操作放在 1 個邏輯核心(2 個執行緒)上,從而降低性能。我很難相信 SQL Server 的架構師會做出如此明顯的誤判。
這不是 SQL Server 問題。超執行緒虛擬核心看起來與作業系統的真實核心完全相同 - 哎呀,甚至是 bios。您可以將程序固定到處理器,但調度程序根本不知道處理器的哪些核心是真實的,哪些是超執行緒……特別是因為兩者在技術上都是真實的,只是共享某些資源。超執行緒是由英特爾開發的,通過在兩個核心之間共享某些資產來實現“比真正的更便宜的雙核處理器”,但代價是程序根本不知道這一點。
較新的 Intel CPU 在硬體方面更好,因此 Hypewr-Threading 不再被認為是目前 SQL Server 的瓶頸——在目前的 Intel 晶片上執行。這是因為英特爾主要使超執行緒變得更好。
http://www.microsoft.com/whdc/system/sysperf/Perf_tun_srv-R2.mspx是目前的 2008 R2 調整指南。
http://ozamora.com/2010/09/sql-server-2008-r2-and-nehalem-processors/有一些關於 Nehalem 和 SQL Server 的東西。