VM 大小:Azure VM 中的 SQL Server 效能最佳做法

適用於:Azure VM 上的 SQL Server

本文提供一系列的 VM 大小最佳做法與指導方針,以將 Azure 虛擬機器 (VM) 上 SQL Server 的效能最佳化。

通常必須在最佳化成本與最佳化效能之間做出取捨。 此效能最佳做法系列著重於取得 Azure 虛擬機器上 SQL Server 的「最佳」效能。 如果工作負載需求不高,則不一定要遵循每個最佳化建議。 評估以下建議時,請考量您的效能需求、成本和工作負載模式。

如需完整的詳細資料,請參閱此系列的其他文章:檢查清單儲存體安全性HADR 設定收集基準

檢查清單

請檢閱下列檢查清單,以簡要了解本文其餘部分將更詳細說明的 VM 大小最佳做法:

  • 新的 Ebdsv5 系列提供 Azure 中最高的 I/O 輸送量對虛擬核心比率,以及比率為 8 的記憶體對虛擬核心比。 此系列可為 Azure VM 上的 SQL Server 工作負載提供最佳的效能價格。 針對大多數 SQL Server 工作負載,請優先考慮使用此系列。
  • 使用具有 4 vCPU (含) 以上的 VM 大小,例如 E4ds_v5 或更高版本。
  • 使用記憶體最佳化的虛擬機器大小,使 SQL Server 工作負載達到最佳效能。
  • Edsv5MMv2 系列提供 OLTP 工作負載所需的最佳記憶體對虛擬核心比。
  • M 系列 VM 可在 Azure 中提供最高的記憶體對虛擬核心比。 針對任務關鍵性和資料倉儲工作負載,請考慮使用這些 VM。
  • 使用 Azure Marketplace 映像來部署 SQL Server 虛擬機器,因為已針對最佳效能對 SQL Server 設定和儲存體選項進行設定。
  • 收集目標工作負載的效能特性,並以此判斷適合您業務的 VM 大小。
  • 使用 Data Migration AssistantSKU 建議工具,找出您現有 SQL Server 工作負載的正確 VM 大小。
  • 使用 Azure Data Studio 移轉至 Azure。

若要比較 VM 大小檢查清單與其他檢查清單,請參閱完整的效能最佳做法檢查清單

概觀

當您在 Azure VM 上建立 SQL Server 時,請仔細考慮所需的工作負載類型。 如果您要移轉現有的環境,請收集效能基準,以判斷 Azure VM 上的 SQL Server 需求。 如果這是新的 VM,則根據您的廠商需求建立新的 SQL Server VM。

如果您要使用專為雲端建置的新應用程式來建立新的 SQL Server VM,您可以隨著資料和使用量需求的演變,輕鬆地調整 SQL Server VM 的大小。 以較低階層的 D 系列、B 系列或 Av2 系列開始開發環境,並在一段時間後擴大您的環境。

在入口網站中使用具有儲存體設定的 SQL Server VM Marketplace 映像。 這讓您可更輕鬆地妥善建立必要的存放集區,以取得工作負載所需的大小、IOPS 和輸送量。 請務必選擇支援進階儲存體和進階儲存體快取的 SQL Server VM。 若要深入了解,請參閱儲存體一文。

目前,Ebdsv5 系列提供 Azure 中可用的最高 I/O 輸送量對虛擬核心比。 如果您不知道 SQL Server 工作負載的 I/O 需求,此系列最有可能符合您的需求。 若要深入了解,請參閱儲存體一文。

注意

較大的 Ebdsv5 系列 大小 (48 個 vCPU 和更大) 為啟用 NVMe 的儲存體存取提供支援。 若要利用這個高 I/O 效能,您必須使用 NVMe 部署虛擬機器。 SQL Server Marketplace 映像的 NVMe 支援即將推出,但現在您必須自行安裝 SQL Server 才能利用 NVMe。

SQL Server 資料倉儲和任務關鍵性環境通常需要調整為超過 8 的記憶體對虛擬核心比。 針對中型環境,您可能會想要選擇 16 的記憶體對虛擬核心比;針對較大型資料倉儲環境,您可能會想要選擇 32 的記憶體對虛擬核心比。

SQL Server 資料倉儲環境通常會從平行處理更多電腦中受益。 因此,M 系列和 Mv2 系列是較大型資料倉儲環境的絕佳選項。

使用您來源電腦的 vCPU 和記憶體設定,作為將目前內部部署 SQL Server 資料庫移轉到 Azure VM 上 SQL Server 的基準。 如果您有軟體保證,請利用 Azure Hybrid Benefit 自備您的授權到 Azure,以節省 SQL Server 授權成本。

記憶體最佳化

記憶體最佳化的虛擬機器大小是 SQL Server VM 的主要目標,也是 Microsoft 所建議的選擇。 記憶體最佳化的虛擬機器提供更優良的記憶體對 CPU 比,以及中大型快取選項。

Ebdsv5 系列

Ebdsv5 系列是新的記憶體最佳化系列 VM,可提供 Azure 中可用的最高遠端儲存體輸送量。 這些 VM 的記憶體對虛擬核心比為 8,加上高 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 建議的值,因此只有在需要隔離時才應該使用。

Edsv5 系列虛擬機器支援進階儲存體進階儲存體快取

ECadsv5 系列

ECadsv5 系列虛擬機器大小是具有暫存磁碟的記憶體最佳化 Azure 機密 VM。 如需 Azure 機密 VM 的安全性優點相關資訊,請檢閱機密 VM

由於 Azure 機密 VM 的安全性功能可能會造成效能額外負荷,請測試您的工作負載,並選取符合效能需求的 VM 大小。

M 和 Mv2 系列

M 系列提供適用於某些最大型 SQL Server 工作負載的虛擬核心計數和記憶體。

Mv2 系列具有最高的虛擬核心計數和記憶體,建議用於任務關鍵性和資料倉儲工作負載。 Mv2 系列執行個體是記憶體最佳化的 VM 大小,可提供無與倫比的計算效能,以支援大型記憶體內部資料庫和工作負載,並具有高記憶體對 CPU 比,最適用於關聯式資料庫伺服器、大型快取及記憶體內部分析。

M 和 Mv2 系列中有益於 SQL Server 效能的一些功能包括進階儲存體進階儲存體快取支援、Ultra 磁碟支援,以及寫入加速

一般用途

一般用途的虛擬機器大小係為提供平衡記憶體對虛擬核心比而設計,適用於較小型的入門級工作負載 (例如開發和測試、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 系列虛擬機器支援進階儲存體進階儲存體快取

注意

Ddsv5 系列沒有針對 SQL Server 工作負載建議使用的記憶體對虛擬核心比 8。 因此,請考慮只針對小型應用程式和開發工作負載使用這些虛擬機器。

DCadsv5 系列

DCadsv5 系列虛擬機器大小是具有暫存磁碟的一般用途 Azure 機密 VM。 如需 Azure 機密 VM 的安全性優點相關資訊,請檢閱機密 VM

由於 Azure 機密 VM 的安全性功能可能會造成效能額外負荷,請測試您的工作負載,並選取符合效能需求的 VM 大小。

B 系列

可高載的 B 系列虛擬機器大小適合不需要一致效能的工作負載 (例如概念證明),以及非常小型的應用程式和開發伺服器。

大多數可高載的 B 系列虛擬機器大小都有 4 的記憶體對虛擬核心比。 在這些電腦中,最大型為具有 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 TB 的 NVMe SSD。 這表示對於此系列的最大型 VM L80s_v2,會有 80 vCPU 和 640 BiB 的記憶體搭配 10x1.92TB 的 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 數,但資料倉儲工作負載通常會有較少使用者的特性,而且會透過平行執行的查詢計劃來處理更大量的資料。
  • 計算成本 (包括作業系統授權) 將維持與父虛擬機器相同。

後續步驟

若要深入了解,請參閱此最佳作法系列的其他文章: