SQL Server 版本的計算容量限制

適用於:SQL Server

本文會討論 SQL Server 版本的計算容量限制,以及其在具有同步多執行緒 (SMT) 處理器的實體與虛擬化環境中有何差異。 在 Intel CPU 上,SMT 被稱為超執行緒

概觀

此圖表顯示計算容量限制的對應。

下表說明上圖中的標記法:

描述
0..1 零個或一個
1 只有一個
1..* 一個或多個
0..* 零個或多個
1..2 一個或兩個

詳細說明:

  • 一個虛擬機器 (VM) 會配有一或多個虛擬處理器。
  • 一個或多個虛擬處理器只會配置給一個虛擬機器。
  • 零個或一個虛擬處理器會對應至零個或多個邏輯處理器。 當虛擬處理器與邏輯處理器之間的對應為:
    • 一對零:表示客體作業系統未使用未繫結邏輯處理器。
    • 一對多:表示過度認可。
    • 零對多,表示虛擬機器不在主機系統上。 因此 VM 未使用任何邏輯處理器。
  • 一個插槽會對應至零個或多個核心。 當插槽與核心之間的對應為:
    • 一對零:表示空的插槽。 未安裝任何晶片。
    • 一對一:表示插槽內裝有單核晶片。 這種對應目前不多。
    • 一對多:表示插槽內裝有多核晶片。 典型值為 2、4 和 8。
  • 一個核心會對應至一個或兩個邏輯處理器。 當核心與邏輯處理器之間的對應為:
    • 一對一:SMT 已關閉。
    • 一對二:SMT 已開啟。

下列定義適用於本文所用的詞彙:

  • 從 SQL Server、作業系統、應用程式或驅動程式的觀點而言,執行緒或邏輯處理器都是單一邏輯計算引擎。

  • 核心則是處理器單元, 可能由一或多個邏輯處理器組成。

  • 一個實體處理器可能是由一個或多個核心組成。 實體處理器與處理器套件或插槽相同。

SQL Server 2022 累積更新 11 的中斷性變更

SQL Server 將每個 NUMA 節點的邏輯處理器數目限制為 64。 在每個 NUMA 節點具有超過 64 個邏輯處理器的伺服器上,您可以使用 BIOS/韌體設定來變更作業系統呈現的每個實體套接字的 NUMA 節點數目,以限制為最多 64 個邏輯處理器。

您也可以考慮停用 SMT。 在 Intel CPU 上,SMT 被稱為超執行緒

備註

具有多個實體處理器的系統或是具有多核心及/或 SMT 之實體處理器的系統可讓作業系統同時執行多個工作。 每個執行的執行緒都會顯示成邏輯處理器。 例如,如果電腦具有兩個啟用 SMT 的四核心處理器,且每個核心都有兩個執行緒,則一共有 16 個邏輯處理器:2 個處理器 x 每個處理器 4 個核心 x 每個核心 2 個執行緒。 值得注意的是:

  • 來自 SMT 核心之單一執行緒的邏輯處理器計算容量小於來自停用 SMT 之相同核心的邏輯處理器計算容量。

  • SMT 核心中兩個邏輯處理器的計算容量則大於停用 SMT 之相同核心的計算容量。

每個 SQL Server 版本都有兩個計算容量限制:

  • 插槽 (或實體處理器或處理器套件) 數目上限

  • 作業系統所報告的核心數目上限

這些限制適用於單一 SQL Server 執行個體。 它們代表單一執行個體會使用的計算容量上限。 並不會限制要部署執行個體的目標伺服器。 實際上,在相同的實體伺服器上部署多個 SQL Server 執行個體,可有效地使用插槽及 (或) 核心數目超過所允許容量限制之實體伺服器的計算容量。

下列資料表會指定每個 SQL Server 版本其單一執行個體的計算容量限制:

SQL Server 版本 單一執行個體的計算容量上限 (SQL Server 資料庫引擎) 單一執行個體的計算容量上限 (AS、RS)
Enterprise Edition:核心授權 1 作業系統最大值 作業系統最大值
開發人員 作業系統最大值 作業系統最大值
標準 限制為 4 個插槽或 24 個核心的較小者 限制為 4 個插槽或 24 個核心的較小者
Express 限制為 1 個插槽或 4 個核心的較小者 限制為 1 個插槽或 4 個核心的較小者

1 伺服器 + 用戶端存取使用權 (CAL) 的 Enterprise Edition 授權限制為每個 SQL Server 執行個體 20 個核心。 (新協議未提供此授權。) 核心伺服器授權模式之下沒有任何限制。

在虛擬環境中,計算容量限制的依據為邏輯處理器的數目,而非核心數目。 原因是客體應用程式看不見處理器架構。

例如,如果一部伺服器的四個插槽都插入四核心處理器,而且能夠為每個核心啟用兩個 SMT 執行緒,則在啟用 SMT 的情況下,總共包含 32 個邏輯處理器。 但是在停用 SMT 的情況下,只包含 16 個邏輯處理器。 這些邏輯處理器可對應至伺服器上的虛擬機器。 而該邏輯處理器之虛擬機器計算負載則對應至主機伺服器中實體處理器上執行的執行緒。

當每個虛擬處理器的效能都很重要時,建議您停用 SMT。 您可以在 BIOS 設定期間使用處理器的 BIOS 設定,以啟用或停用 SMT,但這通常是伺服器範圍的作業,會影響伺服器上執行的所有工作負載。 您可考慮分隔在虛擬環境中執行的工作負載與實體作業系統環境中可從 SMT 效能獲益的工作負載。

取得協助

參與編輯 SQL 文件

您知道您可以自行編輯 SQL 內容嗎? 這樣做不僅可以協助改善文件,也能名列該頁面的參與者。

如需詳細資訊,請參閱如何參與 SQL Server 文件