本文說明如何改善 SSD(進階)SMB Azure 檔案共用的效能,包括使用 SMB 多重通道和元數據快取。
適用於
| 管理模型 | 計費模型 | 媒體層級 | 冗餘 | SMB | NFS |
|---|---|---|---|---|---|
| Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 本地 (LRS) |
|
|
| Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 區域 (ZRS) |
|
|
| Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | 異地 (GRS) |
|
|
| Microsoft 儲存服務 | 已佈建的 v2 | HDD (標準) | GeoZone (GZRS) |
|
|
| Microsoft 儲存服務 | 已佈建的 v1 | SSD (進階版) | 本地 (LRS) |
|
|
| Microsoft 儲存服務 | 已佈建的 v1 | SSD (進階版) | 區域 (ZRS) |
|
|
| Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 本地 (LRS) |
|
|
| Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 區域 (ZRS) |
|
|
| Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | 異地 (GRS) |
|
|
| Microsoft 儲存服務 | 隨用隨付 | HDD (標準) | GeoZone (GZRS) |
|
|
最佳化效能
下列秘訣可協助您最佳化效能:
- 請確定您的儲存體帳戶和用戶端位於相同的 Azure 區域中,以減少網路延遲。
- 使用多執行緒應用程式並將負載分散到多個檔案中。
- SMB 多通道的效能優勢隨著分配負載的檔案數量而增加。
- SSD 共用效能受佈建共用大小的限制,包括 IOPS 和輸送量,以及單一檔案限制。 如需詳細資訊,請參閱 瞭解布建 v1 模型。
- 單一 VM 用戶端的最大效能仍受 VM 限制的約束。 例如,Standard_D32s_v3 可支援大約 1.86 GiB / 秒的最大頻寬,系統會計量來自 VM 的輸出 (寫入儲存體),但輸入 (從儲存體讀取) 不會。 檔案共用效能受限於計算機網路限制、CPU、內部記憶體可用的網路頻寬、IO 大小、平行處理原則及其他因素。
- 初始測試通常是熱身階段。 捨棄結果並重複進行測試。
- 如果效能受到單一用戶端的限制,且工作負載仍低於佈建的共用限制,您可以將負載分散到多個用戶端,以達到更高的效能。
IOPS、輸送量和 I/O 大小之間的關聯性
輸送量 = IO 大小 * IOPS
較高的 I/O 大小會驅動更高的輸送量和更高的延遲,從而導致較低的淨 IOPS 數量。 較小的 I/O 大小可驅動更高的 IOPS,但會導致較低的淨輸送量和延遲。 如需詳細資訊,請參閱了解 Azure 檔案儲存體的效能。
SMB 多重通道
SMB 多重通道可讓SMB用戶端建立SMB檔案共用的多個網路連線。 Azure 檔案服務支援 Windows 用戶端 SSD 檔案共用上的 SMB 多重通道。 在服務端,現在預設會針對所有 Azure 區域中新建立的記憶體帳戶啟用 SMB 多重通道。 啟用 SMB 多通道無需額外費用。
福利
SMB 多重通道可讓用戶端使用多個網路連線以提升效能,同時降低所有權成本。 提高效能是透過多個 NIC 上的頻寬彙總,以及利用支援 NIC 的接收端縮放 (RSS) 技術,將 I/O 負載分散到多個 CPU。
- 增加輸送量:多個連線可以同時在多個路徑上傳送資料,且因為使用更大的檔案大小與更大的 I/O 大小,需要單一 VM 或一組小型 VM 提供高輸送量,所以可以藉此大幅降低工作負載。 其中部分工作負載包含媒體和娛樂的內容建立或轉碼、基因體學和金融服務風險分析。
- 較高的 IOPS:NIC RSS 功能可以透過多個連線,在多個 CPU 上有效分散負載。 這有助於提高 IOPS 規模且可有效利用 VM CPU。 這對具有小規模 I/O 大小的工作負載很實用,例如資料庫應用程式。
- 網路容錯:多個連線可以減緩連線中斷的風險,因為用戶端不用再依賴單一連線。
- 自動設定:用戶端和儲存體帳戶啟用 SMB 多重通道時,可以對現有連線進行動態探索,且可視需要建立額外的連線路徑。
- 成本優化:工作負載可以從單一 VM 或一組小型 VM 達到更高的規模,同時連線到 SSD 檔案共用。 由於執行和管理工作負載所需要的 VM 數量減少,因此可以降低所有權的總成本。
如需 SMB 多通道的詳細資訊,請參閱 Windows 檔。
這項功能可以提高多執行緒應用程式的效能,但通常對單一執行緒應用程式沒有幫助。 如需詳細資訊,請參閱效能比較一節。
限制
適用於 Azure 檔案共用的 SMB 多重通道目前有下列限制:
- 僅適用於 SSD 檔案共用。 不適用於 HDD Azure 檔案共用。
- 僅支援使用SMB 3.1.1的用戶端。 確定 SMB 用戶端作業系統已更新至建議的層級。
- 通道數目上限為四個。 有關詳細信息,請參閱 此處。
組態
SMB 多重通道只有在用戶端 (您的用戶端) 和伺服器端 (您的 Azure 儲存體帳戶) 均啟用此功能時,才會有作用。
在 Windows 用戶端上,SMB 多重通道預設為啟用。 您可以執行下列 PowerShell 命令以確認設定:
Get-SmbClientConfiguration | Select-Object -Property EnableMultichannel
若 Azure 儲存體帳戶未啟用 SMB 多重通道,請參閱 SMB 多重通道狀態。
停用 SMB 多重通道
在大部分情況下,特別是多執行緒工作負載,用戶端會看到使用 SMB 多重通道後的效能提升。 不過,針對某些特定案例,例如單一執行緒工作負載或測試用途,建議您停用 SMB 多重通道。 如需詳細資訊,請參閱效能比較和 SMB 多重通道狀態。
確認 SMB 多重通道已正確設定
- 建立新的 SSD 檔案共用或使用現有的 SSD 檔案共用。
- 確定您的客戶端支援 SMB 多重通道 (一或多個網路介面卡已啟用接收端調整功能)。 如需詳細資訊,請參閱 Windows 文件。
- 將檔案共用裝載至用戶端。
- 使用您的應用程式產生負載。 複製工具 (例如 robocopy/MT) 或任何效能工具 (例如 Diskspd 至讀取/寫入檔案) 可能會產生負載。
- 以系統管理員身分開啟 PowerShell,並使用下列命令:
Get-SmbMultichannelConnection |fl - 尋找 MaxChannels 和 CurrentChannels 屬性。
表現比較
讀取/寫入工作負載模式分為兩種類別:單一執行緒和多執行緒。 大部分的工作負載都會使用多個檔案,但在特定使用案例中,工作負載可搭配共用中的單一檔案運作。 本節涵蓋不同的使用案例和每個使用案例的效能影響。 一般而言,大部分的工作負載都是多執行緒,並將工作負載分散在多個檔案,因此應該可以看到 SMB 多重通道的效能顯著提升。
- 多執行緒/多個檔案:依據工作負載模式,您應該會發現多重通道的讀取和寫入 I/O 效能明顯提升。 就 IOPS、輸送量和延遲而言,效能提升從 2 倍到 4 倍不等。 若為此類別,應啟用 SMB 多重通道以獲得最佳效能。
- 多執行緒/單一檔案:對於此類別中的大多數使用案例,工作負載受益於啟用 SMB 多通道,特別是當工作負載的平均 I/O 大小大於 16 KiB 時。 因 SMB 多重通道受益的幾個範例案例:備份或復原單一大型檔案。 遇到小型 I/O 的工作負載繁重這種例外狀況時,建議您停用 SMB 多重通道。 在這種情況下,您可能會發現效能稍微下降 10%。 視使用案例而定,請考慮將負載分散到多個檔案,或停用此功能。 如需詳細資訊,請參閱設定一節。
- 單一執行緒/多個檔案或單一檔案:對於大部分的單一執行緒工作負載而言,效能獲益最低,因為缺少平行處理原則。 如果啟用 SMB 多通道,通常會有 10% 的輕微效能下降。 在這種情況下,最理想的做法是停用 SMB 多重通道,但有一個例外。 如果單執行緒工作負載可以在多個檔案之間分配負載,並在平均較大的 I/O 大小(大於 16 KiB)上使用,則 SMB 多通道應該有輕微的效能優勢。
效能測試設定
本文中的圖表均使用下列設定:單一標準 D32s v3 VM,搭配已啟用單一 RSS 的 NIC 與四個通道。 負載是使用 diskspd.exe、多重執行緒 (I/O 深度為 10) 和隨機 I/O (具有各種 I/O 大小) 產生。
多執行緒/多個檔案搭配 SMB 多重通道
負載是針對具有各種 IO 大小的 10 個檔案產生。 擴大測試結果顯示:啟用 SMB 多重通道後,IOPS 和輸送量測試結果均有顯著改善。 下列圖表描述結果:
- 在單一 NIC 上,在讀取方面,觀察到效能提升 2 倍到 3 倍,而在寫入方面,IOP 和輸送量均提升 3 倍到 4 倍。
- 即使在使用單一 NIC 和四個通道的限制情況下,SMB 多重通道仍允許 IOPS 和輸送量觸及 VM 限制。
- 由於輸出 (或讀取儲存體) 未計量,因此讀取輸送量能夠超過 VM 發佈的限制約為 1.86 GiB/秒。測試達到了大於 2.7 GiB/秒的速度。輸入 (或寫入儲存體) 仍受限於 VM 限制。
- 將負載分散到多個檔案,可以大幅提升效能。
此測試中使用的範例命令如下:
diskspd.exe -W300 -C5 -r -w100 -b4k -t8 -o8 -Sh -d60 -L -c2G -Z1G z:\write0.dat z:\write1.dat z:\write2.dat z:\write3.dat z:\write4.dat z:\write5.dat z:\write6.dat z:\write7.dat z:\write8.dat z:\write9.dat 。
使用 SMB 多執行緒的多執行緒/單一檔案工作負載
負載是針對單一 128 GiB 檔案而產生。 在啟用 SMB 多執行緒的情況下,使用多執行緒/單一檔案的擴大測試會顯示大部分情況下的效能改善結果。 下列圖表描述結果:
- 在具有較大平均 I/O 大小(大於 16 KiB)的單個 NIC 上,讀取和寫入都有顯著改進。
- 若 I/O 大小較小,則在啟用 SMB 多重通道時,會對效能造成約 10% 的輕微影響。 您可以藉由將負載分散到多個檔案,或停用此功能,來減輕這種情況。
- 效能仍受單一檔案限制的約束。
適用於 SSD 檔案共用的中繼資料快取
中繼資料快取是 SSD Azure 檔案共用的增強功能,可減少中繼資料延遲並提高中繼資料規模限制。 此功能可增加延遲一致性和可用 IOPS,並提高網路輸送量。
此功能可改善下列中繼資料 API 的效能。 Windows 和 Linux 用戶端都可以使用它:
- 引發的中繼資料調整限制
- 增加延遲一致性、可用的 IOPS,以及提升網路輸送量
這項功能可改善下列元數據 API,而且可從 Windows 和 Linux 用戶端使用:
- 建立
- 開啟
- 關閉
- 刪除
目前,該功能僅適用於 SSD 文件共享。 使用這項功能不需要額外的成本。 您也可以註冊來提高 SSD 文件分享的文件處理限制(預覽版)。
註冊中繼資料快取功能
若要開始使用,請使用 Azure 入口網站 或 Azure PowerShell 註冊此功能。
- 登入 Azure 入口網站。
- 搜尋並選取 [預覽功能]。
- 選取 [ 類型 篩選],然後選取 [Microsoft.Storage]。
- 選取 [Azure 進階檔案元數據快取 ],然後選取 [ 註冊]。
重要
- 雖然列在 [預覽功能] 底下,但我們接受 GA SLA,而且很快就會將此設為所有帳戶的預設值,而不需要註冊。
- AFEC註冊完成後,請聯絡azfilespreview@microsoft.com以獲取進一步的說明。
使用中繼資料快取的改善效能
大部分包含中繼資料或使用模式的工作負載都可以受益於中繼資料快取。 若要判斷您的工作量是否包含中繼資料,您可以使用 Azure 監視器,依 API 維度拆分交易。
典型的元數據繁重的工作量和使用模式包括:
- Web/應用程式服務
- DevOps 工作
- 索引編製/批次作業
- 擁有主目錄或其他工作負載的虛擬桌面,主要與許多小型檔案、目錄或控制代碼互動
下列圖表顯示可能的結果。
降低中繼資料延遲
藉由快取未來查閱的檔案和目錄路徑,中繼資料快取可針對大規模具有大量中繼資料的工作負載,將經常存取檔案和目錄的延遲降低 30% 以上。
增加可用的 IOPS
中繼資料快取可為大規模具有大量中繼資料的工作負載增加 60% 以上的可用 IOPS。
增加網路輸送量
中繼資料快取可為大規模具有大量中繼資料的工作負載增加 60% 以上的網路輸送量。
註冊提高檔案控制代碼限制 (預覽版)
若要將 SSD SMB 檔案共用的每個檔案和目錄並行句柄數目上限從 2,000 增加到 10,000,請使用 Azure 入口網站或 Azure PowerShell 註冊預覽功能。 如果您有問題,請傳送電子郵件 azfilespreview@microsoft.com。
- 登入 Azure 入口網站。
- 搜尋並選取 [預覽功能]。
- 選取 [ 類型 篩選],然後選取 [Microsoft.Storage]。
- 選取 [Azure 進階檔案提高最大開啟檔案控制代碼記數],然後選取 [註冊]。
下一步
- 檢查 SMB 多重通道狀態
- 請參閱 Windows 文件 以了解 SMB 多重通道。