VM 大小:Azure VM 中的 SQL Server 效能最佳做法
本文提供一系列的 VM 大小最佳做法與指導方針,以將 Azure 虛擬機器 (VM) 上 SQL Server 的效能最佳化。
通常必須在最佳化成本與最佳化效能之間做出取捨。 此效能最佳做法系列著重於取得 Azure 虛擬機器上 SQL Server 的「最佳」效能。 如果工作負載需求不高,則不一定要遵循每個最佳化建議。 評估以下建議時,請考量您的效能需求、成本和工作負載模式。
如需完整的詳細資料,請參閱此系列的其他文章:檢查清單、儲存體、安全性、HADR 設定、收集基準。
檢查清單
請檢閱下列檢查清單,以簡要了解本文其餘部分將更詳細說明的 VM 大小最佳做法:
- 識別工作負載效能特性,以判斷適合您企業的 VM 大小。
- 如果您要移轉至 Azure,請使用資料 移轉小幫手 和 SKU 等工具,為現有的 SQL Server 工作負載尋找正確的 VM 大小,然後使用 Azure Data Studio 進行移轉。
- 使用 Azure Marketplace 映像將您的 SQL Server VM 部署為 SQL Server 設定和記憶體選項,以獲得最佳效能。
- 搭配 4 個以上的 vCPU 使用 VM 大小。
- 使用記憶體最佳化的虛擬機器大小,使 SQL Server 工作負載達到最佳效能。
- Edsv5 系列和 Msv3 和 Mdsv3 系列提供 OLTP 工作負載建議的最佳記憶體對虛擬核心比率。
- Mbdsv3 系列 VM 為 Azure VM 上的 SQL Server 工作負載提供最佳效能。 針對任務關鍵 OLTP 和數據倉儲 SQL Server 工作負載,請先考慮此系列。
- Ebdsv5 系列提供高 I/O 輸送量到虛擬核心的比例,以及 8:1 的記憶體與虛擬核心比率。 此系列可為 Azure VM 上的 SQL Server 工作負載提供最佳的效能價格。 針對大部分的 SQL Server 工作負載,請先考慮這些 VM。
- M 系列系列提供在 Azure 中記憶體配置最高的 VM。
- Mbsv3 和 Mbdsv3 系列 VM 提供高記憶體配置,以及 M 系列系列中最高的 I/O 輸送量與虛擬核心比率,以及至少 8:1 的一致記憶體與虛擬核心比率。
- 使用較低層級的 D 系列、B 系列或 Av2 系列開始開發環境,並隨著時間成長您的環境。
若要比較 VM 大小檢查清單與其他檢查清單,請參閱完整的效能最佳做法檢查清單。
概觀
當您在 Azure VM 上建立 SQL Server 時,請仔細考慮所需的工作負載類型。 如果您要移轉現有的環境,請收集效能基準,以判斷 Azure VM 上的 SQL Server 需求。 使用您來源電腦的 vCPU 和記憶體設定,作為將目前內部部署 SQL Server 資料庫移轉到 Azure VM 上 SQL Server 的基準。 如果您有軟體保證,請利用 Azure Hybrid Benefit 將授權帶入 Azure 並節省 SQL Server 授權成本。
如果這是新的 VM,請根據您的應用程式需求建立新的 SQL Server VM。 如果您要為針對針對雲端建置的新應用程式建立新的 SQL Server VM,您可以隨著數據和使用量需求的發展,輕鬆地調整 SQL Server VM 的規模。 使用較低層級的 D 系列、B 系列或 Av2 系列開始開發環境,並隨著時間成長您的環境。
根據您的 SQL Server 工作負載考慮下列 VM 系列:
- 任務關鍵性工作負載的最高記憶體配置: Mbsv3 和 Mbdsv3 系列 VM 提供 Azure 中最高的記憶體配置,具有最佳的記憶體效能。
- 高 I/O 輸送量與虛擬核心比率: Mbsv3 和 Mbdsv3 系列 VM 提供任何雲端中任何 VM 系列的最高輸送量與虛擬核心比率。 Ebdsv5 系列 VM 在 Azure 中提供第二高輸送量與虛擬核心比率。 如果您不知道 SQL Server 工作負載的 I/O 需求, Ebdsv5 系列 VM 最可能符合您的需求。 若要深入了解,請參閱儲存體一文。
- 大型機器的平行處理: Msv3 和 Mdsv3 系列 VM 提供平行處理,使其成為較大型數據倉儲環境的絕佳選項。
SQL Server 數據倉儲和任務關鍵環境通常需要調整超過 8:1 記憶體與虛擬核心的比例。 針對中型環境,您可能會想要選擇 16:1 記憶體與虛擬核心比例,以及較大數據倉儲環境的 32:1 記憶體與虛擬核心比例。
在入口網站中使用具有儲存體設定的 SQL Server VM Marketplace 映像。 這讓您可更輕鬆地妥善建立必要的存放集區,以取得工作負載所需的大小、IOPS 和輸送量。 請務必選擇支援進階記憶體效能的 SQL Server VM。 若要深入了解,請參閱儲存體一文。
記憶體優化 M 系列 VM
M 系列提供適用於某些最大型 SQL Server 工作負載的虛擬核心計數和記憶體。
下列列出 M 系列 VM 的功能:
Mbsv3 和 Mbdsv3 系列
Mbsv3 和 Mbdsv3 系列是記憶體優化 VM,專為記憶體內部資料庫和具有高記憶體對 CPU 比率的工作負載所設計。 此系列中的 VM 是以第 4 代 Intel® Xeon® Scalable 為基礎所建置,並提供一系列記憶體大小和 vCPU 計數,以符合 SQL Server 工作負載的需求。 建議針對任務關鍵性和數據倉儲工作負載使用 Mbsv3 和 Mbdsv3 系列 VM。
Mbsv3 和 Mbdsv3 系列 VM 支援支援大型記憶體內部資料庫和工作負載,其記憶體與 CPU 比率高,非常適合關係資料庫伺服器、數據倉儲、繁重的報告、大型快取和記憶體內部分析。
以下是此系列中 VM 的特性:
- Mbsv3 系列 提供最多 176 個虛擬核心和 1,536 GiB 的記憶體,具有一致的 8:1 記憶體對虛擬核心比率、650,000 IOPS 和 6,000 MBps 的記憶體輸送量。
- Mbdsv3 系列 最多可提供 176 個虛擬核心和 4 TiB 的記憶體、650,000 IOPS 和 10,000 MBps 的記憶體輸送量。 此 VM 系列提供 IOPS 和輸送量超過 50% 的改善,以達到最高效能的 Ebdsv5 系列 -- 讓 Mbdsv3 成為任何雲端中可用的最高效能 VM 選項之一。 Mbdsv3 VM 系列與 Mbsv3 VM 系列共用類似的效能特性,但包含強大的本機和暫時記憶體,使其非常適合 tempdb 效能優化、報告、任務關鍵 OLAP 和數據倉儲工作負載。
Msv3 和 Mdsv3 系列
Msv3 和 Mdsv3 虛擬機是針對中、高和高記憶體層級的運算能力和記憶體功能所設計。 相較於前一代Mv2 VM,這些 VM 可提供改善的效能、延展性和失敗復原能力。
下列列出此系列中的 VM:
- Msv3 和 Mdsv3 中型記憶體 VM:由第 4 代 Intel® Xeon® 可調整處理器提供電源,並提供最多 4 TiB 記憶體、416 個 vCPU、130,000 IOPS 和 4,000 MBps 的遠端記憶體輸送量與 NVMe 介面。
- Msv3 和 Mdsv3 高記憶體 VM:專為記憶體範圍從 6 TiB 到 16 TiB、最多 832 個 vCPU、最多 260,000 IOPS 和 8,000-MBps 輸送量到具有 NVMe 介面之遠端記憶體的高記憶體工作負載而設計。
- Mdsv3 非常高的記憶體系列:由第 4 代 Intel® Xeon® Platinum 8490H(Gpu Rapids) 處理器提供電源,且擁有任何 M 系列虛擬機的最大記憶體使用量,提供高達 32 TiB 的記憶體、1,792 個 vCPU、最多 200,000 個 IOPS 和 8,000 MBps 的遠端記憶體輸送量。
警告
停用 SMT ,在每個 NUMA 節點超過 64 個虛擬核心的 Azure VM 上使用 SQL Server。
記憶體優化的 E 系列 VM
E 系列 VM 是專為需要大量 RAM 來維護高效能的大型資料庫、巨量數據分析和企業應用程式等大量記憶體密集型工作負載所設計。
Ebdsv5 系列
Ebdsv5 系列是記憶體優化的 VM 系列,可提供 Azure 中可用的最高遠端記憶體輸送量。 這些 VM 的記憶體對虛擬核心比率為 8:1,加上高 I/O 輸送量,因此最適合大部分的 SQL Server 工作負載。 Ebdsv5 系列 VM 為在 Azure 虛擬機器上執行的 SQL Server 工作負載提供最佳性價,強烈建議您為大部分的生產 SQL Server 工作負載使用此系列 VM。
Edsv5 系列
Edsv5 系列是專為需要大量記憶體的應用程式所設計,非常適合不需要 Ebdsv5 系列這種高 I/O 輸送量的 SQL Server 工作負載。 這些 VM 有高達 672 GiB RAM 的大型本機儲存體 SSD 容量,和非常高的本機與遠端儲存體輸送量。 在大部分的虛擬機器中,每個虛擬核心幾乎同樣都有 8 GiB 的記憶體,因此適合大多數 SQL Server 工作負載。
此群組中的最大型虛擬機器是提供 104 個虛擬核心和 672 GiB 記憶體的 Standard_E104ids_v5。 此虛擬機器之所以值得注意,是因為其為隔離式,意即保證是主機上唯一執行的虛擬機器,因此會與其他客戶工作負載有所區隔。 此虛擬機器的記憶體對虛擬核心比低於針對 SQL Server 建議的值,因此只有在需要隔離時才應該使用。
ECadsv5 系列
ECadsv5 系列虛擬機器大小是具有暫存磁碟的記憶體最佳化 Azure 機密 VM。 如需 Azure 機密 VM 的安全性優點相關資訊,請檢閱機密 VM。
由於 Azure 機密 VM 的安全性功能可能會帶來效能額外負荷,請測試您的工作負載,並選取符合效能需求的 VM 大小。
一般用途
一般用途的虛擬機器大小係為提供平衡記憶體對虛擬核心比而設計,適用於較小型的入門級工作負載 (例如開發和測試、Web 伺服器和小型資料庫伺服器)。
由於一般用途虛擬機器的記憶體對虛擬核心比較小,因此請務必仔細監視記憶體型效能計數器,以確保 SQL Server 能夠取得所需的緩衝區快取記憶體。 如需詳細資訊,請參閱記憶體效能基準。
由於一開始建議生產工作負載使用的記憶體對虛擬核心比為 8,因此執行 SQL Server 的一般用途 VM 最低建議設定為 4 vCPU 和 32 GiB 的記憶體。
Ddsv5 系列
Ddsv5 系列提供適當的 vCPU、記憶體和暫存磁碟組合,但具有較小的記憶體對虛擬核心支援。
Ddsv5 VM 包含較低的延遲和更快速的本機儲存體。
這些電腦適合需要快速存取暫存儲存體和部門關聯式資料庫的並存 SQL 和應用程式部署。 此系列中的所有虛擬機器都有標準記憶體對虛擬核心比 4。
因此,建議利用 D8ds_v5 作為此系列中的入門虛擬機器,因其具有 8 個虛擬核心和 32 GiB 的記憶體。 最大型電腦是 D96ds_v5,其具有 96 個虛擬核心和 256 GiB 的記憶體。
注意
Ddsv5 系列沒有針對 SQL Server 工作負載建議使用的記憶體對虛擬核心比 8。 因此,請考慮只針對小型應用程式和開發工作負載使用這些虛擬機器。
DCadsv5 系列
DCadsv5 系列虛擬機器大小是具有暫存磁碟的一般用途 Azure 機密 VM。 如需 Azure 機密 VM 的安全性優點相關資訊,請檢閱機密 VM。
由於 Azure 機密 VM 的安全性功能可能會帶來效能額外負荷,請測試您的工作負載,並選取符合效能需求的 VM 大小。
B 系列
可高載的 B 系列虛擬機器大小適合不需要一致效能的工作負載 (例如概念證明),以及非常小型的應用程式和開發伺服器。
大多數可高載的 B 系列虛擬機器大小都有 4 的記憶體對虛擬核心比。 最大高載 B 系列是 具有 20 個虛擬核心和 80 GiB 記憶體的Standard_B20ms 。
此系列是唯一的,因為應用程式能夠在上班時間內進行高載,並根據電腦大小來改變可高載的額度。
當額度用盡時,VM 會恢復成基準電腦效能。
B 系列的優點是,您可以省下比其他系列中其他 VM 大小更高的計算成本,特別是需要節省一整天的處理能力時。
注意
可高載的 B 系列沒有針對 SQL Server 工作負載建議使用的記憶體對虛擬核心比 8。 因此,請考慮只針對較小型應用程式、網頁伺服器和開發工作負載使用這些虛擬機器。
Av2 系列
Av2 系列 VM 最適合入門級工作負載,例如開發和測試、低流量網頁伺服器、小型至中型應用程式資料庫,以及概念證明。
只有 Standard_A2m_v2 (2 個虛擬核心和 16 GiB 的記憶體)、Standard_A4m_v2 (4 個虛擬核心和 32 GiB 的記憶體) 以及 Standard_A8m_v2 (8 個虛擬核心和 64 GiB 的記憶體) 具有適合前三大虛擬機器的記憶體對虛擬核心比 8。
這些虛擬機器都是較小型開發和測試 SQL Server 電腦的絕佳選擇。
8 個虛擬核心 Standard_A8m_v2 也可以是小型應用程式和網頁伺服器的絕佳選項。
注意
Av2 系列不支援進階儲存體,因此不建議用於生產 SQL Server 工作負載,即使虛擬機器的記憶體對虛擬核心比為 8 也一樣。
儲存體最佳化
儲存體最佳化的 VM 大小適用於特定使用案例。 這些虛擬機器特別設計為具有最佳化的磁碟輸送量和 IO。
Lsv2 系列
Lsv2 系列提供高輸送量、低延遲和本機 NVMe 儲存體。 Lsv2 系列 VM 已最佳化,會使用與 VM 直接連結之節點上的本機磁碟,而不會使用耐久性資料磁碟。
這些虛擬機器是巨量資料、資料倉儲、報告和 ETL 工作負載的強大選擇。 本機 NVMe 儲存體的高輸送量和 IOPS 適用於處理將載入您資料庫的檔案,以及可從來源系統或其他存放庫 (例如 Azure Blob 儲存體或 Azure Data Lake) 重新建立資料的其他情況。 Lsv2 系列 VM 也可以一次高載磁碟效能長達 30 分鐘。
這些虛擬機大小從 8 到 80 個 vCPU,每個 vCPU 有 8 GiB 的記憶體,而每 8 個 vCPU 有 1.92 TiB 的 NVMe SSD。 這表示對於此系列中最大的 VM 而言, L80s_v2有 80 個 vCPU 和 640 BIB 的記憶體,具有 10x1.92 TiB 的 NVMe 記憶體。 所有這些虛擬機器之間的記憶體對虛擬核心比一致為 8。
NVMe 儲存體是暫時性的,也就是說,如果您解除配置虛擬機器,或將其移至不同的主機以進行服務修復,則這些磁碟上的資料將會遺失。
Lsv2 和 Ls 系列支援進階儲存體,但不支援進階儲存體快取。 不支援建立本機快取來增加 IOPS。
警告
將資料檔案儲存在暫時性 NVMe 儲存體上,可能會在解除配置 VM 時導致資料遺失。
受限的虛擬核心數
高效能的 SQL Server 工作負載通常需要較大量的記憶體、IOPS 和不需要較多虛擬核心計數的輸送量。
大多數 OLTP 工作負載都是由大量較小型交易所驅動的應用程式資料庫。 使用 OLTP 工作負載時,只會讀取或修改少量的資料,但是依使用者計數驅動的交易數量會高出許多。 請務必讓 SQL Server 記憶體可供快取計劃、儲存最近存取的數據以達到效能,並確保實體讀取可以快速讀取記憶體。
這些 OLTP 環境需要較高的記憶體數量、快速的儲存體及必要的 I/O 頻寬,才能獲得最佳執行效能。
為了在不提高 SQL Server 授權成本的情況下維持此效能等級,Azure 提供具有受限 vCPU 計數的 VM 大小。
這會減少可用的虛擬核心數,同時維持父虛擬機器的相同記憶體、儲存體和 I/O 頻寬,因此有助於控制授權成本。
vCPU 計數可以限制為原始 VM 大小的一半或四分之一。 減少虛擬機器可用的虛擬核心數會提高記憶體對虛擬核心比,但計算成本會維持不變。
這些新的 VM 大小有尾碼,該尾碼會指定使用中 vCPU 數目,讓您更容易識別。
例如,M64-32ms 只需要授權 32 SQL個 SQL Server 虛擬核心搭配 M64ms 的記憶體、I/O 和輸送量,而 M64-16ms 只需要授權 16 個虛擬核心。 雖然 M64-16ms 的 SQL Server 授權成本是 M64ms 的四分之一,但虛擬機器的計算成本相同。
注意
- 中型至大型資料倉儲工作負載可能仍受益於受限的虛擬核心 VM 數,但資料倉儲工作負載通常會有較少使用者的特性,而且會透過平行執行的查詢計劃來處理更大量的資料。
- 計算成本 (包括作業系統授權) 將維持與父虛擬機器相同。
後續步驟
若要深入了解,請參閱此最佳作法系列的其他文章:
如需安全性最佳做法,請參閱 Azure 虛擬機器上的 SQL Server 安全性考量。
請檢閱 Azure 虛擬機器上的 SQL Server 概觀中其他「SQL Server 虛擬機器」的相關文章。 如果您有 SQL Server 虛擬機器的相關問題,請參閱常見問題集。