在 Azure VM 上設定 SQL Server 的記憶體

適用於:Azure VM 上的 SQL Server

本文說明如何使用 進階版 SSD,為透過 Azure Marketplace 部署的 Azure 虛擬機器 (VM) 上的 SQL Server 設定記憶體。

透過市集映像部署的 SQL Server VM 會自動遵循預設儲存體最佳做法,其可在部署期間進行修改。 您可以在部署之後變更其中一些組態設定。

注意

本文僅適用於使用 進階儲存體 的 Azure VM 上的 SQL Server,不適用於 SSD v2 記憶體 進階版。

必要條件

若要使用自動儲存體組態設定,您的虛擬機器需具備下列特性︰

新的 VM

下列各節說明如何為新的 SQL Server 虛擬機器設定儲存體。

Azure 入口網站

使用 SQL Server 資源庫映像佈建 Azure VM 時,請在 [SQL Server 設定] 索引標籤上選取 [儲存體] 下的 [變更設定],以開啟 [設定儲存體] 頁面。 您可以保留預設值,也可以根據您的工作負載,修改最符合您需求的磁碟設定類型。

Screenshot that highlights the SQL Server settings tab and the Change configuration option.

注意

如果您選取支援的 VM 大小,您可以使用 進階版 SSD v2,讓您更精細地控制磁碟大小、IOPS 和輸送量。

選擇資料檔案和記錄檔的磁碟機位置,同時指定磁碟類型和數目。 使用 IOPS 值來判斷最佳的儲存體設定,以符合您的商務需求。 根據 SQL Server VM 效能最佳做法,選擇進階記憶體會將數據磁碟驅動器的快取設定為 ReadOnly,而記錄磁碟驅動器的 [無]。

Screenshot from the Azure portal of the SQL Server VM Storage Configuration page during provisioning.

磁碟設定是完全可自定義的,因此您可以設定 SQL Server VM 工作負載所需的記憶體拓撲、磁碟類型和 IOPS。 如果您的 SQL Server VM 位於其中一個支援的區域,而且您已為訂用帳戶啟用 Ultra 磁碟,您也可以使用 Ultradisk 作為磁碟類型的選項

在 [Tempdb 儲存體] 下設定 tempdb 資料庫設定,例如資料庫檔案的位置,以及檔案數目、初始大小和自動成長大小 (以 MB 為單位)。

  • 目前,在部署期間,tempdb 檔案的最大數目為 8 個,但在部署 SQL Server VM 後可以新增更多檔案。
  • 如果您如建議在 D:本機 SSD 磁碟區上設定 SQL Server 實例 tempdb ,SQL IaaS 代理程式擴充功能會管理重新佈建時所需的資料夾和許可權。 這不需要您使用來自 Azure Marketplace 的映像來建立 SQL 虛擬機。

Screenshot that shows where you can configure the tempdb storage for your SQL VM.

此外,您也能為磁碟設定快取。 與進階磁碟搭配使用時,Azure VM 具有稱為 Blob 快取的多層快取技術。 Blob 快取會結合虛擬機器 RAM 和本機 SSD 進行快取。

進階版 SSD 的磁碟快取可以是 ReadOnly、*ReadWrite 或 None

  • 唯讀快取對於儲存在進階儲存體上的 SQL Server 資料檔案非常有用。 從位於 VM 記憶體和本機 SSD 內的快取執行讀取時,唯讀快取可帶來低讀取延遲、高讀取 IOPS 和輸送量。 這些讀取的速度比從 Azure Blob 儲存體的資料磁碟讀取快非常多。 進階版 記憶體不會計算從快取到磁碟 IOPS 和輸送量的讀取。 因此,應用程式能夠達到較高的 IOPS 和輸送量總計。

  • 快取組態應該用於裝載 SQL Server 記錄檔的磁碟,因為記錄檔是循序寫入,而且無法受益於 ReadOnly 快取。

  • ReadWrite 快取不應該用來裝載 SQL Server 檔案,因為 SQL Server 不支援與 ReadWrite 快取的數據一致性。 如果寫入時經過唯讀 Blob 快取層,則寫入會浪費唯讀 Blob 快取的容量,且延遲會稍微增加。

    提示

    請確定您的儲存體設定符合所選 VM 大小所加諸的限制。 選擇超過 VM 大小效能上限的儲存體參數將會導致警告:The desired performance might not be reached due to the maximum virtual machine disk performance cap。 請變更磁碟類型來減少 IOPS,或增加 VM 大小來增加效能上限。 這不會停止佈建。

根據您的選擇,Azure 會在建立 VM 後執行下列儲存體設定工作︰

  • 建立進階 SSD 並將其連結到虛擬機器。
  • 設定 SQL Server 可存取的資料磁碟。
  • 根據指定的大小和效能 (IOPS 和輸送量) 需求,設定存放集區中的資料磁碟。
  • 建立存放集區與虛擬機器上新磁碟機的關聯。

如需如何在 Azure 入口網站中建立 SQL Server VM 的完整逐步解說,請參閱 佈建教學課程

Resource Manager 範本

如果您使用下列 Resource Manager 範本,則預設會連接兩個進階資料磁碟,但不會設定存放集區。 不過,您可以自訂這些範本,以變更連接到虛擬機器的進階資料磁碟數目。

快速入門範本

您可以使用下列快速入門範本,透過儲存體最佳化來部署 SQL Server VM。

注意

某些 VM 大小可能沒有暫時或本機儲存體。 如果您在沒有暫存儲存體的 Azure VM 上部署 SQL Server,tempdb 資料和記錄檔會放在資料檔案夾中。

現有的 VM

注意

儲存體 僅適用於從 Azure Marketplace 中的 SQL Server 映射部署的 SQL Server VM,目前不支援 進階版 SSD v2 磁碟。

針對透過 Azure Marketplace 部署的現有 SQL Server VM,您可以修改 Azure 入口網站 中的某些記憶體設定。

若要修改記憶體設定,請開啟 SQL 虛擬機資源,然後在 [設定] 底下選取 [儲存體 組態]。

Screenshot that highlights the Configure option and the Storage Usage section.

您可以修改在 SQL Server VM 建立過程中所設定磁碟機的磁碟設定。 選取 [設定] 會開啟 [延伸磁碟機] 頁面,讓您可以變更磁碟類型,以及新增額外的磁碟。

A screenshot from the Azure portal showing the Extend Data drive page, used to configure storage for an existing SQL Server VM.

您也可以使用 [儲存體設定] 頁面來修改您的 tempdb 設定,例如 tempdb 檔案數目,以及初始大小,和自動成長比例。 選取 [tempdb] 旁邊的 [設定] 以開啟[tempdb 設定] 頁面。

選擇 [是] 旁的 [設定 tempdb 資料檔] 以修改您的設定,然後在重新啟動時選擇 [管理 tempdb 資料庫資料夾] 旁的 [是],以便在下次 SQL Server 服務啟動時管理您的tempdb設定、資料夾和許可權。 這不需要您使用來自 Azure Marketplace 的映像來建立 SQL 虛擬機。

Screenshot of the tempdb configuration page of the Azure portal from the SQL virtual machines resource page.

重新啟動您的 SQL Server 服務以套用變更。

自動變更

本節提供儲存體設定變更的參考,Azure 會在 Azure 入口網站中進行 SQL Server VM 佈建或設定期間自動執行這些變更。

  • Azure 會從選自 VM 的儲存體設定存放集區。 本文的下一節提供存放集區設定的詳細數據。
  • 自動儲存體設定一律使用進階 SSD P30 資料磁碟。 因此,所選的 TB 數目與連結至 VM 的數據磁碟數目之間會有 1:1 的對應。

如需價格資訊,請參閱 磁碟儲存體 索引標籤上的 儲存體價格 頁面。

建立存放集區

Azure 會使用下列設定在 SQL Server VM 上建立存放集區。

設定
等量大小 64 KB
磁碟大小 每個磁碟 1 TB
快取 讀取
配置大小 64 KB NTFS 配置單位大小
復原 簡單復原 (無恢復功能)
Number of columns 資料磁碟數目,最多可達 8 個1

1 建立存放集區之後,您無法改變存放集區中的數據行數目。

啟用快取

針對 進階版 SSD,您可以在磁碟層級變更快取原則。 若要這樣做,您可以使用 Azure 入口網站、PowerShellAzure CLI

若要在 Azure 入口網站中變更您的快取原則,請遵循下列步驟:

  1. 停止您的 SQL Server 服務。

  2. 登入 Azure 入口網站

  3. 瀏覽至您的虛擬機器,選取 [設定] 下的 [磁碟]。

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. 從下拉式清單中為您的磁碟選擇適當的快取原則 - 只讀或無。

    Screenshot showing the disk caching policy configuration in the Azure portal.

  5. 變更生效之後,請將 SQL Server VM 重新開機,並啟動 SQL Server 服務。

啟用寫入加速器

寫入加速器是僅適用於 M 系列 虛擬機器 (VM) 的磁碟功能。 寫入加速的目的是為了改善針對 Azure 進階儲存體的寫入 I/O 延遲,同時由於大量任務關鍵性 OLTP 工作負載或資料倉儲環境,需要單一位數 I/O 延遲。

啟用寫入加速器之前,請先檢閱一些 限制,以確認您的企業可以接受這些限制

在針對您的寫入加速原則進行變更之前,請先停止所有 SQL Server 活動並關閉 SQL Server 服務。

如果您的磁碟已等量分割,請針對每個磁碟個別啟用寫入加速,並在進行任何變更之前,應該先將您的 Azure VM 關機。

若要使用 Azure 入口網站啟用寫入加速,請遵循下列步驟:

  1. 停止您的 SQL Server 服務。 如果您的磁碟已等量分割,請關閉虛擬機器。

  2. 登入 Azure 入口網站

  3. 瀏覽至您的虛擬機器,選取 [設定] 下的 [磁碟]。

    Screenshot showing the VM disk configuration pane in the Azure portal.

  4. 從下拉式清單中為您的磁碟選擇具有 [寫入加速器] 的快取選項。

    Screenshot showing the write accelerator cache policy.

  5. 變更生效之後,請啟動虛擬機器和 SQL Server 服務。

磁碟等量分割

如需更多的輸送量,您可以新增其他資料磁碟,並使用磁碟等量分割。 若要判斷資料磁碟的數目,請分析 SQL Server 資料檔案 (包括記錄和 tempdb) 所需的輸送量和頻寬。 輸送量和頻寬限制會依 VM 大小而有所不同。 若要深入瞭解,請參閱 VM 大小

  • 若為 Windows 8/Windows Server 2012 以上版本,請遵循下列指導方針使用儲存空間

    1. 將交錯 (等量大小) 設定為 64 KB (65,536 個位元組),以避免由於分割區不一致而造成的效能影響。 必須使用 PowerShell 來設定。

    2. 設定資料行數目 = 實體磁碟數量。 設定 8 個以上的磁碟 (不是伺服器管理員 UI) 時,使用 PowerShell。

例如,下列 PowerShell 會建立交錯大小為 64 KB 的新存放集區,而且資料行數目等於存放集區中的實體磁數量:

$PhysicalDisks = Get-PhysicalDisk | Where-Object {$_.FriendlyName -like "*2" -or $_.FriendlyName -like "*3"}

New-StoragePool -FriendlyName "DataFiles" -StorageSubsystemFriendlyName "Windows Storage on <VM Name>" `
    -PhysicalDisks $PhysicalDisks | New-VirtualDisk -FriendlyName "DataFiles" `
    -Interleave 65536 -NumberOfColumns $PhysicalDisks.Count -ResiliencySettingName simple `
    -UseMaximumSize |Initialize-Disk -PartitionStyle GPT -PassThru |New-Partition -AssignDriveLetter `
    -UseMaximumSize |Format-Volume -FileSystem NTFS -NewFileSystemLabel "DataDisks" `
    -AllocationUnitSize 65536 -Confirm:$false

在 Windows Server 2016 和更新版本中,-StorageSubsystemFriendlyName 的預設值為 Windows Storage on <VM Name>

  • 對於 Windows 2008 R2 之前的版本,可以使用動態磁碟 (OS 分割的磁碟區),且等量磁碟區的大小一律為 64 KB。 Windows 8/Windows Server 2012 已不再提供此選項。 如需相關資訊,請參閱 虛擬磁碟服務正轉換為 Windows 存放管理 API中的支援聲明。

  • 如果您使用 儲存空間直接存取 (S2D) 搭配 SQL Server 故障轉移叢集實例,則必須設定單一集區。 雖然可以在該單一集區上建立不同的磁碟區,但它們都會共用相同的特性,例如相同的快取原則。

  • 請根據您預期的負載量,決定與您的儲存體集區相關聯的磁碟數量。 請注意,各 VM 大小所允許連接的資料磁碟數量皆不同。 如需相關資訊,請參閱虛擬機器的大小

已知問題

SQL 虛擬機器資源上的 [設定磁碟] 選項或 [儲存體設定] 窗格會呈現灰色

如果您的 SQL IaaS 代理程式延伸模組處於失敗狀態,[儲存體設定] 窗格可能會在 Azure 入口網站中呈現灰色。 修復 SQL IaaS 代理程式延伸模組

如果您已自訂存放集區,或是使用非 Marketplace 映像,[儲存體設定] 窗格上的 [設定] 會呈現灰色。

我有一個磁碟,有 1 TB 的未配置空間,我無法從存放集區移除

沒有選項可從屬於存放集區的磁碟移除未配置的空間。