本文提供儲存體最佳做法與指導方針,以將 Azure 虛擬機器 (VM) 上 SQL Server 的效能最佳化。
通常必須在最佳化成本與最佳化效能之間做出取捨。 此效能最佳做法系列著重於取得 Azure VM 上 SQL Server 的「最佳」效能。 如果工作負載需求不高,則不一定要遵循每個最佳化建議。 評估以下建議時,請考量您的效能需求、成本和工作負載模式。
若要深入了解,請參閱此系列的其他文章:檢查清單、VM 大小、安全性、HADR 設定及收集基準。
檢查清單
請檢閱下列檢查清單,先簡單了解儲存體最佳做法的概要,本文其餘部分將提供更詳細的說明:
- 在選擇磁碟類型之前,請先監視應用程式,並判斷 SQL Server 資料、記錄及 檔案的
tempdb
。 - 如果可用,請在 D: 本機 SSD 磁碟區上設定
tempdb
資料和記錄檔。 SQL IaaS 代理程式延伸模組會處理重新佈建時所需的資料夾和權限。 - 若要將儲存體效能最佳化,請規劃可用的最高未快取 IOPS,並使用資料快取以提升資料讀取效能,同時避免虛擬機器和磁碟的限制。
- 使用 Ebdsv5 或 Ebsv5 系列 SQL Server VM 時,使用 進階 SSD v2 以取得最佳價格效能。 您可以使用 Azure 入口網站透過進階 SSD v2 部署 SQL Server VM (目前為預覽狀態)。
- 如果您的工作負載需要超過 160,000 IOPS,請使用 Premium SSD v2 或 Azure Ultra 磁碟。
- 將資料、記錄與
tempdb
檔案放在不同的磁碟機上。- 針對資料磁碟機,使用進階 P30 和 P40 或較小型磁碟來確保快取支援的可用性。 在使用 Ebdsv5 VM 系列時,使用進階 SSD v2,它為需要高 IOPS 和 I/O 輸送量的工作負載提供更好的價格效能。
- 評估進階 SSD v2 或進階 SSD P30 – P80 磁碟時,針對容量和測試效能與成本相對的記錄磁碟機方案
- 如需數毫秒以下的儲存延遲,請使用 進階 SSD v2 或 Azure Ultra 磁碟 作為交易記錄。
- 為 M 系列虛擬機器進行部署時,請考慮使用寫入加速器,而不是 Azure Ultra 磁碟。
- 在選擇最佳的 VM 大小之後,對於不屬於容錯移轉叢集執行個體 (FCI) 的大部分 SQL Server 工作負載,將 tempdb 放在暫存磁碟 (暫存磁碟是暫時性的,預設為
D:\
)。- 如果對
tempdb
來說,本機磁碟機的容量不足,請考慮調整 VM 的大小。 如需詳細資訊,請參閱資料檔案快取原則。
- 如果對
- 對於容錯移轉叢集執行個體 (FCI),請將
tempdb
放在共用儲存體上。- 如果 FCI 工作負載嚴重相依於
tempdb
磁碟效能,則以進階設定的方式將tempdb
放在本機暫時 SSD (預設D:\
) 磁碟機,此磁碟機並非 FCI 儲存體的一部分。 這項設定需要自定義監控和操作,以確保本機臨時 SSD(預設D:\
)磁碟機始終處於可用狀態,因為此磁碟機的任何故障都不會從 FCI 觸發動作。
- 如果 FCI 工作負載嚴重相依於
- 使用儲存空間來分割多個 Azure 資料磁碟,以將 I/O 頻寬增加高達目標虛擬機器的 IOPS 和輸送量限制。
- 將資料檔案磁碟的主機快取設定為唯讀。
- 將記錄檔磁碟的主機快取設定為 [無]。
- 請勿在包含 SQL Server 資料或記錄檔的磁碟上啟用讀取/寫入快取。
- 在變更磁碟的快取設定之前,請一律停止 SQL Server 服務。
- 將數個不同的工作負載移轉至雲端時,Azure 彈性 SAN 可以成為符合成本效益的合併儲存體解決方案。 不過,使用 Azure 彈性 SAN 時,達到 SQL Server 工作負載所需的 IOPS/輸送量通常需要超額佈建容量。 雖然通常不適合單一 SQL Server 工作負載,但將低效能工作負載與 SQL Server 結合時,您可以取得符合成本效益的解決方案。
- 請考慮使用標準儲存體處理開發和測試工作負載,以及長期備份封存。 不建議使用標準 HDD/SSD 進行生產工作負載。
- 只應針對較小型的開發/測試工作負載和部門系統考慮信用計算磁碟爆量 (P1-P20)。
- 若要將儲存體效能最佳化,請規劃可用的最高未快取的 IOPS,並使用資料快取做為資料讀取的效能功能,同時避免虛擬機器和磁碟上限/節流。
- 將您的資料磁碟格式化,以針對位於暫存
D:\
磁碟機以外之磁碟機上的所有資料檔案使用 64 KB 的配置單位大小 (預設值為 4 KB)。 透過 Azure Marketplace 部署的 SQL Server VM 附帶的資料磁碟已格式化,配置單位大小和儲存集區的交錯設定為 64 KB。 - 在與 SQL Server VM 相同的區域中設定儲存體帳戶。
- 停用 Azure 異地備援儲存體 (異地複寫) 並在儲存體帳戶上使用 LRS (本地備援儲存體)。
- 啟用 SQL 最佳做法評估,以識別可能的效能問題,並評估您的 SQL Server VM 是否已設定為遵循最佳做法。
- 使用儲存體 IO 使用率計量來檢閱和監視磁碟和 VM 限制。
- 從防毒軟體掃描中排除 SQL Server 檔案,包括資料檔案、記錄檔和備份檔案。
若要將儲存體檢查清單與其他最佳做法相互比較,請參閱完整的效能最佳做法檢查清單。
概觀
若要針對 Azure VM 上的 SQL Server 工作負載尋找最具效率的設定,請先測量您商務應用程式的儲存體效能。 了解儲存體需求之後,請選取支援必要 IOPS 和輸送量的虛擬機器,該虛擬機器應具備適當的記憶體與虛擬核心比例。
為您的工作負載需求選擇具有足夠儲存體可擴縮性的 VM 尺寸,以及符合您企業容量和效能需求的混合磁碟 (其通常位於存放集區中)。
磁碟的類型取決於磁碟上託管的檔案類型,以及您的最佳性能需求。
提示
透過 Azure 入口網站佈建 SQL Server VM 有助於引導您完成儲存體設定流程,並執行大部分的儲存體最佳做法,其中包括針對您的資料和記錄檔建立個別的存放集區、將 tempdb
鎖定為 D:\
磁碟機、以及啟用最佳的快取原則。 如需佈建和設定儲存體的詳細資訊,請參閱 SQL VM 儲存體設定。
VM 磁碟類型
您可以自行選擇您的磁碟效能等級。 可用於基礎儲存體的受控磁碟類型 (按照順序列出,效能能力越高排越後面) 為:標準硬碟 (HDD)、標準固態硬碟 (SSD)、進階 SSD、進階 SSD v2 及 Ultra 磁碟。
若是標準 HDD、標準 SSD 和進階 SSD,磁碟的效能會隨著磁碟大小而增加,並以進階磁碟標籤進行分組 (例如,具有 4 GiB 空間的 P1、120 IOPS 以及 P80 與 32 TiB 的儲存體和 20,000 IOPS)。 進階儲存體會支援儲存體快取,其可協助改善某些工作負載的讀取和寫入效能。 如需詳細資訊,請參閱受控磁碟概觀。
進階 SSD v2 和 Ultra 磁碟的效能可以獨立於磁碟大小而變更,如需詳細資料,請參閱<Ultra 磁碟效能>(機器翻譯) 和<進階 SSD v2 效能>(機器翻譯)。 如果您的工作負載需要超過 160,000 IOPS,請考慮使用進階 SSD v2 或 Ultra 磁碟。
對於您在 Azure VM 上的 SQL Server,您也需要考慮三大磁碟角色:作業系統磁碟、暫存磁碟以及資料磁碟。 請仔細選取儲存在作業系統磁碟機 (C:\)
和暫時性暫存磁碟機 (D:\)
上的內容。
作業系統磁碟
作業系統磁碟是一個可用作開機並掛載的虛擬硬碟 (VHD),它執行作業系統的某一版本,並被標示為 C:\
磁碟機。 建立 Azure VM 時,該平台會附加至少一個磁碟至 VM 作為作業系統磁碟。
C:\
磁碟機為安裝應用程式和設定檔案時使用的預設位置。
對於生產 SQL Server 環境,請不要將作業系統磁碟用於資料檔案、記錄檔或錯誤記錄檔。
暫存磁碟
許多 Azure VM 會包含另一個稱為暫存磁碟的磁碟類型 (標示為 D:\
磁碟機)。 視 VM 系列和大小而定,此磁碟的容量將會隨其改變。 暫存磁碟是短暫性存儲,這表示磁碟儲存會在虛擬機器重新啟動或移至不同主機(例如,為了進行服務修復)時重新建立(即解除配置,然後再配置一次)。
暫存儲存體磁碟機不會持續儲存檔案至遠端存放裝置,因此不應利用其儲存使用者資料庫檔案、交易記錄檔或任何必須予以保存的資料。 例如,您可以將其用於緩衝集區擴展、頁面文件和 tempdb
。
如果不擔心消耗本機快取,請將 tempdb
放在用於 SQL Server 工作負載的本機暫存 SSD D:\
磁碟機上。 如果您要使用沒有暫存磁碟的 VM,則建議您將 tempdb
放在其個別的磁碟或儲存集區,並將快取設定為 [唯讀]。 若要深入瞭解,請參閱 tempdb 資料快取原則。
資料磁碟
資料磁碟為遠端儲存體磁碟,通常會在儲存集區中建立,此做法使其能超越任何單一磁碟可提供給 VM 的容量和效能。
連接最少數量的磁碟,以滿足工作負載的 IOPS、輸送量和容量要求。 請不要超過您預計中要調整大小的最小 VM 資料磁碟數量上限。
將資料和記錄檔放在已佈建為最符合效能需求的資料磁碟上。
將您的資料磁碟格式化,以針對位於暫存 D:\
磁碟機以外之磁碟機上的所有資料檔案使用 64 KB 的配置單位大小 (預設值為 4 KB)。 透過 Azure Marketplace 部署的 SQL Server VM 附帶的資料磁碟已格式化,配置單位大小和儲存集區的交錯設定為 64 KB。
注意
您也可以直接在 Azure Blob 儲存體或 SMB 儲存體 (例如 Azure 進階檔案共用) 上託管 SQL Server 資料庫檔案,但我們建議使用 Azure 受控磁碟,其可提供最佳效能、可靠性及功能可用性。
進階 SSD v2
如果目前限制適合您的環境,則在支援的區域中執行 SQL Server 工作負載時,您應使用進階 SSD v2 磁碟。 根據您的組態,進階 SSD v2 可能比進階 SSD 更便宜,同時也提供效能改進。 使用進階 SSD v2,您可以獨立於磁碟大小單獨調整輸送量或 IOPS。 能夠單獨調整效能選項可以節省更大的成本,且可讓您編寫變更指令碼以滿足預期或已知需求期間的效能要求。
我們建議在使用 Ebdsv5 或 Ebsv5 虛擬機器系列時使用進階 SSD v2,因為對於這些高 I/O 輸送量機器來說,它是一種更符合成本效益的解決方案。 如果您的工作負載需要超過 160,000 IOPS,請考慮使用進階 SSD v2 或 Ultra 磁碟。
您可以使用 Azure 入口網站透過進階 SSD v2 部署 SQL Server VM (目前為預覽狀態)。
若您使用 Azure 入口網站 來部署 SQL Server VM,而且想要使用進階 SSD v2,則目前僅限於使用 Ebdsv5 或 Ebsv5 系列虛擬機器。 不過,如果您使用進階 SSD v2 儲存體手動建立 VM,然後將 SQL Server 手動安裝在 VM 上,則可以使用支援進階 SSD v2 的任何 VM 系列。 請務必使用 SQL IaaS 代理程式擴充功能註冊 SQL Server VM,以便利用擴充功能所提供的所有優點。
Azure 彈性 SAN
Azure 彈性 SAN 是一種網路連接儲存裝置供應項目,可為客戶提供彈性且可調整的解決方案,並有可能透過儲存體合併來降低成本。 Azure 彈性 SAN 提供了符合成本效益、效能且可靠的區塊存放裝置解決方案,可透過 iSCSI 通訊協定連線至各種 Azure 計算服務。 彈性 SAN 可讓您順暢地從現有的 SAN 儲存體資產轉換至雲端,而不需要重構客戶應用程式架構。
此解決方案可擴充至數百萬個 IOPS、兩位數 GB/秒的輸送量和單位數毫秒的低延遲,並具有內建的韌性,可最大限度地減少停機時間。 如果您需要整合儲存、使用多個運算服務或在網路頻寬需求大的情況下驅動儲存體以承載高吞吐量的工作負載,請使用 Azure 彈性 SAN。 不過,由於要達到 SQL Server 工作負載所需的 IOPS/輸送量往往需要過度佈建容量,因此
請考慮將 SQL Server 工作負載放在彈性 SAN 上,以提升成本效益、記憶體匯總、動態效能共用,以及驅動更高的記憶體輸送量。
進階 SSD
請在生產環境的 SQL Server 工作負載中,為資料檔案和記錄檔案使用高效能 SSD。 進階 SSD IOPS 和頻寬會根據磁碟大小和類型而有所不同。
針對生產工作負載,請使用 P30 和/或 P40 磁碟搭配 SQL Server 資料檔案,以確保快取支援,並使用 P30 到 P80 的磁碟搭配 SQL Server 交易記錄檔。 為了享有最符合經濟效應的擁有權總成本,起始請先為資料和記錄檔設定 P30 (5000 IOPS/200 MBPS),而且只有在需要控制 VM 磁碟計數時,才選擇較高的容量。 對於開發/測試或小型系統,您可以選擇使用小於 P30 的大小,這些較小的方案仍然支援快取,但不提供預留定價。
針對 OLTP 工作負載,請使用尖峰時間的工作負載和 Disk Reads/sec
+ Disk Writes/sec
效能計數器,對於每個磁碟的目標 IOPS (或存放集區) 與效能需求進行比對。 針對資料倉儲和報告工作負載,請使用尖峰時間的工作負載來比對目標輸送量與 Disk Read Bytes/sec
+ Disk Write Bytes/sec
。
使用儲存空間來達到最佳效能、設定兩個集區,其一用於記錄檔,而另一個用於資料檔案。 如果您未使用磁碟條帶化,則請使用兩個對應至個別磁碟機的高級 SSD 磁碟;其中一個磁碟機用於儲存記錄檔,另一個用於儲存資料。
您的存放集區中每個磁碟的佈建 IOPS 和吞吐量。 磁碟的 IOPS 與輸送量能力合併後,最大可以達到 VM 的輸送量限制。
最佳做法是盡可能使用最少的磁碟數量,同時符合 IOPS (和輸送量) 及容量的最低需求。 不過,價格和效能之間更佳的平衡通常來自於大量的小型磁碟,而不是少數的大型磁碟。
高規格磁碟
進階 SSD 的大小決定磁碟的初始效能層級。 在部署時指定效能層級,或在部署後再進行變更,且不變更磁碟的大小。 如果需求增加,您可以提高效能層級,以滿足您的商務需求。
變更效能層級可讓管理員做好準備,滿足更高的需求,而不需依賴磁碟爆發。
當計費設計旨在滿足儲存效能層級時,您可以根據需要使用較高的效能。 在不會增加容量的情況下,升級層級以滿足效能需求。 當不再需要額外的效能時,退回原始服務層級。
此類具成本效益且暫時性的效能擴充,為特定事件的強大使用案例,例如購物、效能測試、訓練活動及其他只在短期間內需要更佳效能的短暫時段。
如需詳細資訊,請參閱受控磁碟的效能層級。
Azure Ultra Disk
如果需要次毫秒級響應時間並降低延遲,可以考慮針對 SQL Server 記錄磁碟機使用 Azure Ultra 磁碟,甚至對 I/O 延遲異常敏感的應用程式的資料磁碟機使用該磁碟。
可以配置 Ultra 磁碟,以便容量和 IOPS 可以獨立調整和擴展。 使用 Ultra 磁碟,管理員可以根據應用程式需求,佈建具有容量、IOPS 及輸送量需求的磁碟。
並非所有 VM 系列都支援 Ultra 磁碟,而且有其他限制,例如區域可用性、備援以及 Azure 備份的支援。 若要深入瞭解,請參閱使用 Azure ultra 磁碟,取得關於限制的完整清單。
標準 HDD 和 SSD
標準 HDD 具有與 SSD 不同的延遲和頻寬,因此僅建議用於開發/測試工作負載。 生產工作負載應該使用進階 SSD v2 或進階 SSD。 如果您使用標準 SSD (開發/測試案例),建議您新增 VM 大小所支援的最大資料磁碟數量,並使用儲存空間進行磁碟條帶化,以發揮最佳效能。
快取功能
支援進階儲存體快取的 VM 可以利用稱為 Azure BlobCache 或主機快取的額外功能,擴充 VM 的 IOPS 及輸送量功能。 針對進階儲存體和進階儲存體快取啟用的 VM 具有這兩種不同的儲存體頻寬限制,可一起搭配使用以改善儲存體效能。
未快取的 IOPS 和每秒百萬位元組 (MBps) 輸送量將計入 VM 未快取的磁碟輸送量限制。 最大快取限制會為讀取提供額外的緩衝區,此步驟會幫助解決成長及非預期的尖峰等問題。
在選項受到支援時,一律啟用進階快取,以在不需要額外費用的前提下,大幅改善對資料磁碟機的讀取效能。
讀取和寫入 Azure BlobCache (快取的 IOPS 和輸送量) 不會算進 VM 的未快取 IOPS 及輸送量限制。
注意
在 4 TiB 及更大的磁碟(如 P50 及以上)上,不支援磁碟快取。 如果將多個磁碟附加至您的 VM,小於 4 TiB 的每個磁碟會支援快取。 如需詳細資訊,請參閱磁碟快取。
未經緩存的輸送量
最大未快取的磁碟 IOPS 和輸送量是 VM 可以處理的最大遠端存放庫限制。 這項限制是在 VM 上定義,且並非對於基礎磁碟儲存體的限制。 此限制僅適用於遠端連接到 VM 的資料磁碟的 I/O,而非針對暫存磁碟的本機 I/O(D:\
磁碟)或 OS 磁碟。
您可以在 VM 的文件中,驗證可供 VM 使用的未快取 IOPS 和輸送量數量。
例如,M 系列 文件會顯示 Standard_M8ms VM 的最大未快取輸送量為 5000 IOPS,未快取磁碟輸送量為 125 MBps。
同樣地,您可以看到 Standard_M32ts 支援 20,000 個未快取磁碟 IOPS 和 500 MBps 未快取磁碟的傳輸速率。 此限制一律受限於 VM 層級,與基礎進階磁碟儲存體無關。
如需詳細資訊,請參閱未快取和快取限制。
快取和暫存儲存體吞吐量
最大快取和暫存儲存體輸送量限制為獨立的限制,與 VM 上未快取的輸送量限制無關。 Azure BlobCache 由 VM 主機的隨機存取記憶與本機連結 SSD 的組合所組成。 VM 中的暫存磁碟機 (D:\
磁碟機) 也位於此本機的 SSD。
僅在啟用主機快取時,最大快取和暫存儲存體輸送量限制會對本機暫存磁碟機 (D:\
磁碟機) 和 Azure BlobCache 進行控制。
當在高階儲存啟用快取後,VM 的可擴充性可以超越遠端儲存未快取的 VM IOPS 和吞吐量的限制。
只有某些 VM 支援進階儲存體和進階儲存體快取(這需要在虛擬機器文件中加以驗證)。 例如,M 系列 文件顯示支援高階儲存體和高階儲存體快取:
快取的限制會隨著 VM 大小而不同。 例如,Standard_M8ms 虛擬機器支援 10000 IOPS 的快取磁碟和 1000 MB/秒的快取磁碟輸送量,總快取大小為 793 GiB。 同樣地,Standard_M32ts VM 支援 4 萬個快取的磁碟 IOPS 和 400 MBps 的快取磁碟輸送量,總共快取大小為 3,174 GiB。
您可以手動在現有的 VM 上啟用主機快取。 在對 VM 的快取原則進行任何變更之前,請先停用所有應用程式工作負載和 SQL Server 服務。 變更任何 VM 快取設定會導致在套用設定之後,目標磁碟會遭到卸離並中斷連結,然後再重新連結。
數據檔案快取原則
您的儲存體快取原則會根據磁碟機上所託管的 SQL Server 資料檔案類型而有所不同。
下表提供根據 SQL Server 資料類型的建議快取原則摘要:
SQL Server 磁碟 | 建議 |
---|---|
資料磁碟 | 針對裝載 SQL Server 資料檔案的磁碟啟用 Read-only 快取。從快取讀取的速度會比從資料磁碟不經快取的讀取更快。 未快取的 IOPS 和輸送量加上快取的 IOPS 和輸送量,會產生 VM 限制內 VM 可用的總可用效能,但實際的效能會因工作負載使用快取 (快取命中率) 的能力而不同。 |
交易記錄磁碟 | 請將裝載交易記錄檔的磁碟的快取原則設定為 None 。 針對交易記錄檔磁碟啟用快取並不會提供任何效能優勢,實際上,在記錄磁碟機上啟用 Read-only 或 Read/Write 快取可能會降低寫入磁碟機的效能,並減少資料磁碟機可讀取的快取數量。 |
操作作業系統 (OS) 磁碟 | 預設的快取政策為 Read/write ,適用於 OS 磁碟機。不建議變更操作系統磁碟機的快取層級。 |
tempdb |
如果因容量原因而無法將 tempdb 放在暫時磁碟機 D:\ 上,則請調整 VM 的大小以取得較大的暫時磁碟機,或將 tempdb 放在已設定 Read-only 快取的個別資料磁碟機上。VM 快取和暫時磁碟機都使用本機 SSD,所以請記住,當您在暫時磁碟機上進行託管時,如果將 tempdb I/O 調整大小,則會將其算入快取的 IOPS 和輸送量 VM 限制。 |
重要
變更 Azure 磁碟的快取設定會卸載並重新載入目標磁碟。 當您變更託管 SQL Server 資料、記錄檔或應用程式檔案之磁碟其中的快取設定時,請務必停用 SQL Server 服務以及任何其他相關的服務,以避免資料損毀。
若要深入瞭解,請參閱磁碟快取。
磁碟條帶化
若要判斷資料磁碟的數量 (包括記錄檔和 tempdb
),請分析 SQL Server 資料檔案所需的輸送量和頻寬。 輸送量和頻寬限制會依 VM 大小而有所不同。 如需詳細資訊,請參閱 VM 大小。
若要提高輸送量,請新增更多資料磁碟機,並使用磁碟分條。 例如,需要 12,000 IOPS 和 180 MB/s 輸送量的應用程式可以使用三個配置成條帶的 P30 磁碟來提供 15,000 IOPS 以及 600 MB/s 輸送量。
若要設定磁碟等量分割,請參閱磁碟等量分割。
磁碟上限
磁碟層級與 VM 層級都有輸送量限制。 每個 VM 和每個磁碟的最大 IOPS 限制都不盡相同,且各自獨立。
如果應用程式耗用的資源超出這些限制,其將會受到節流處理 (也稱為上限)。 選擇能夠滿足應用程式需求且不會面臨上限限制的 VM 和磁碟大小,在磁碟陣列中設定。 若要解決限制問題,請使用快取,或優化應用程式以減少所需的輸送量。
例如,有 12,000 IOPS 和 180 MB/秒 需求的應用程式可以採用下列方法:
- 使用 Standard_M32ms,其最大未快取的磁碟輸送量為 20,000 IOPS 和 500 MBps。
- 將三份 P30 磁碟進行分割以提供 15,000 IOPS 和 600 MB/秒的輸送量。
- 使用 Standard_M16ms 型號的 VM,並利用主機快取來優先使用本機快取,以減少輸送量的需求。
設定為在高使用率期間相應擴大的 VM 應佈建具有足夠 IOPS 和輸送量的儲存體,以支援最大的 VM 大小,同時讓磁碟的整體數量維持小於或等於要使用的最小 VM SKU 所支援的最大數目。
如需了解有關磁碟上限及使用快取以避免上限的詳細資訊,請參閱磁碟 IO 上限。
注意
某些磁碟使用限制或許仍可提供令使用者滿意的效能;調整和維護工作負載,而不是擴大為更大的 VM,可以在管理成本與商務效能之間取得平衡。
寫入加速
寫入加速為磁碟功能,僅適用於 M 系列 VM。 寫入加速的目的在於提升 Azure 進階儲存體的寫入 I/O 延遲,尤其當面對大量關鍵任務的 OLTP 工作負載或資料倉儲環境時,需要單位數的 I/O 延遲。
使用寫入加速來改善裝載記錄檔的磁碟機的寫入延時。 請不要對於 SQL Server 資料檔案使用寫入加速。
寫入加速器磁碟會與 VM 共用相同的 IOPS 限制。 連結的磁碟不能超過 VM 的寫入加速器 IOPS 限制。
下表列出每個 VM 所支援的資料磁碟和 IOPS 數量:
VM SKU | # 寫入加速磁碟 | 每個 VM 的寫入加速器磁碟 IOPS |
---|---|---|
M416ms_v2、M416s_v2 | 16 | 20000 |
M128ms、M128s | 16 | 20000 |
M208ms_v2、M208s_v2 | 8 | 一萬 |
M64ms,M64ls,M64s | 8 | 一萬 |
M32ms,M32ls,M32ts,M32s | 4 | 5000 |
M16ms,M16s | 2 | 2500 |
M8ms,M8s | 1 | 1250 |
使用寫入加速時有數個限制。 若要深入瞭解,請參閱使用寫入加速器時的限制。
與 Azure Ultra 磁碟進行比較
寫入加速與 Azure ultra 磁碟之間的最大差異在於,「寫入加速」為 VM 功能,僅適用於 M 系列;而 Azure ultra 磁碟則是儲存體選項。 寫入加速為寫入最佳化的快取,其本身的限制取決於 VM 大小。 Azure ultra 磁碟為適用於 Azure VM 的低延遲磁碟儲存體選項。
如有可能,請在交易記錄磁碟上使用寫入加速技術,而非 ultra 磁碟。 對於不支援寫入加速但需要低延遲至交易記錄的 VM,請使用 Azure Ultra 磁碟。
監視儲存體效能
若要評估儲存體需求,並判斷儲存體的執行狀況如何,您必須了解測量基準,以及這些指標的含意。
IOPS (每秒輸入/輸出)是應用程式每秒對儲存體進行的要求數量。 使用效能監視器計數器 Disk Reads/sec
和 Disk Writes/sec
來測量 IOPS。
OLTP (線上交易處理)應用程式需要驅動更高的 IOPS,才能達到最佳效能。 付款處理系統、線上購物及零售銷售點系統等應用程式全都都是 OLTP (線上交易處理) 應用程式的範例。
輸送量為傳送到基礎儲存體的資料量,通常是以每秒 mb 數進行測量。 使用效能監控器計數器 Disk Read Bytes/sec
和 Disk Write Bytes/sec
來測量輸送量。
資料倉儲 已進行最佳化,以最大化輸送量,相較於 IOPS 更為優先。 用於分析的資料存放區、報告、ETL 工作流及其他商業智慧目標等應用程式都是資料倉儲應用程式的範例。
I/O 單位大小會影響 IOPS 和輸送量功能,由於較小的 I/O 大小會產生較高的 IOPS,而較大的 I/O 大小則會產生較高的輸送量。 SQL Server 會自動選擇最合適的 I/O 大小。 如需更多詳細資訊,請參閱針對您的應用程式最佳化 IOPS、輸送量及延遲。
某些特定的 Azure 監視器計量非常適合用於探索 VM 和磁碟層級的上限,還有 AzureBlob 快取的耗用量以及健康情況。 若要識別需要新增至監視解決方案以及 Azure 入口網站儀表板的金鑰計數器,請參閱儲存體使用計量。
注意
Azure 監視器目前未提供暫時暫存磁碟機 (D:\)
的磁碟層級計量。 VM 快取的 IOPS 耗用百分比和 VM 快取的頻寬耗用百分比,將同時反映暫存磁碟機 (D:\)
和主機快取的 IOPS 和吞吐量。
監視交易記錄成長
由於寫滿交易記錄可能會導致效能問題和中斷,因此監視交易記錄中的可用空間以及保存交易記錄的磁碟機的已使用磁碟空間非常重要。 在交易記錄問題影響您的工作負載之前解決它們。
如果您的交易記錄已滿,請檢閱交易記錄寫滿的疑難排解。
如果需要擴充磁碟,您可以在 SQL 虛擬機器資源的 [儲存體] 窗格上執行此作業 (如果從 Azure Marketplace 部署 SQL Server 映像),或在 Azure 虛擬機器和自我安裝的 SQL Server 的 [磁碟] 窗格上執行此作業。
下一步
若要深入了解,請參閱此最佳作法系列的其他文章:
如需安全性最佳做法,請參閱 Azure 虛擬機器上的 SQL Server 安全性考量。
如需在 Azure VM 上使用 TPC-E 和 TPC_C 基準來測試 SQL Server 效能的詳細資訊,請參閱部落格最佳化 OLTP 效能一文。
請檢閱 Azure 虛擬機器上的 SQL Server 概觀中其他「SQL Server 虛擬機器」的相關文章。 如果您有 SQL Server 虛擬機器的相關問題,請參閱常見問題集。