共用方式為


改善 SMB Azure 檔案共用的效能

本文說明如何改善 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 多重通道已正確設定

  1. 建立新的 SSD 檔案共用或使用現有的 SSD 檔案共用。
  2. 確定您的客戶端支援 SMB 多重通道 (一或多個網路介面卡已啟用接收端調整功能)。 如需詳細資訊,請參閱 Windows 文件
  3. 將檔案共用裝載至用戶端。
  4. 使用您的應用程式產生負載。 複製工具 (例如 robocopy/MT) 或任何效能工具 (例如 Diskspd 至讀取/寫入檔案) 可能會產生負載。
  5. 以系統管理員身分開啟 PowerShell,並使用下列命令:Get-SmbMultichannelConnection |fl
  6. 尋找 MaxChannelsCurrentChannels 屬性。

表現比較

讀取/寫入工作負載模式分為兩種類別:單一執行緒和多執行緒。 大部分的工作負載都會使用多個檔案,但在特定使用案例中,工作負載可搭配共用中的單一檔案運作。 本節涵蓋不同的使用案例和每個使用案例的效能影響。 一般而言,大部分的工作負載都是多執行緒,並將工作負載分散在多個檔案,因此應該可以看到 SMB 多重通道的效能顯著提升。

  • 多執行緒/多個檔案:依據工作負載模式,您應該會發現多重通道的讀取和寫入 I/O 效能明顯提升。 就 IOPS、輸送量和延遲而言,效能提升從 2 倍到 4 倍不等。 若為此類別,應啟用 SMB 多重通道以獲得最佳效能。
  • 多線程/單一檔案:針對此類別中的大部分使用案例,工作負載受益於啟用SMB多重通道,特別是當工作負載具有平均I/O大小 > ~16k 時。 因 SMB 多重通道受益的幾個範例案例:備份或復原單一大型檔案。 遇到小型 I/O 的工作負載繁重這種例外狀況時,建議您停用 SMB 多重通道。 在這種情況下,您可能會發現效能稍微下降 ~10%。 視使用案例而定,請考慮將負載分散到多個檔案,或停用此功能。 如需詳細資訊,請參閱設定一節。
  • 單一執行緒/多個檔案或單一檔案:對於大部分的單一執行緒工作負載而言,效能獲益最低,因為缺少平行處理原則。 如果啟用 SMB 多重通道,通常效能會稍微降低約 ~10%。 在這種情況下,最理想的做法是停用 SMB 多重通道,但有一個例外。 如果單一執行緒的工作負載可將負載分散到多個檔案,並使用平均值較大的 I/O 大小 (> ~16k),則 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 限制。
  • 由於輸出(或讀取至記憶體)未計量,讀取輸送量就能夠超過大約 1.86 GiB/ 秒的 VM 發行限制。測試達到 >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 多執行緒的情況下,使用多執行緒/單一檔案的擴大測試會顯示大部分情況下的效能改善結果。 下列圖表描述結果:

IOPS 效能的圖表。

單一檔案輸送量效能的圖表。

  • 在平均 I/O 大小較大 (> ~16k) 的單一 NIC 上,讀取和寫入都有顯著改善。
  • 若 I/O 大小較小,則在啟用 SMB 多重通道時,會對效能造成 ~10% 的輕微影響。 您可以藉由將負載分散到多個檔案,或停用此功能,來減輕這種情況。
  • 效能仍受單一檔案限制的約束。

適用於 SSD 檔案共用的中繼資料快取

元數據快取是 SSD Azure 檔案共用的增強功能,旨在改善下列各項:

  • 降低中繼資料延遲
  • 引發的中繼資料調整限制
  • 增加延遲一致性、可用的 IOPS,以及提升網路輸送量

這項功能可改善下列元數據 API,而且可從 Windows 和 Linux 用戶端使用:

  • 建立
  • 開啟
  • 關閉
  • 刪除

此功能目前僅適用於 SSD 檔案共用。 使用這項功能不需要額外的成本。 您也可以註冊來提高 SSD 文件分享的文件處理限制(預覽版)。

註冊元數據快取功能

若要開始使用,請使用 Azure 入口網站 或 Azure PowerShell 註冊此功能。

  1. 登入 Azure 入口網站
  2. 搜尋並選取 [預覽功能]
  3. 選取 [ 類型 篩選],然後選取 [Microsoft.Storage]。
  4. 選取 [Azure 進階檔案元數據快取 ],然後選取 [ 註冊]。

重要

  • 雖然列在 [預覽功能] 底下,但我們接受 GA SLA,而且很快就會將此設為所有帳戶的預設值,而不需要註冊。
  • 註冊完成後,允許帳戶上線 2-6 小時。

使用中繼資料快取的改善效能

大部分包含中繼資料或使用模式的工作負載都可以受益於中繼資料快取。 若要判斷您的工作量是否包含中繼資料,您可以使用 Azure 監視器,依 API 維度拆分交易。

典型的元數據繁重的工作量和使用模式包括:

  • Web/應用程式服務
  • DevOps 工作
  • 索引編製/批次作業
  • 擁有主目錄或其他工作負載的虛擬桌面,主要與許多小型檔案、目錄或控制代碼互動

下列圖表顯示可能的結果。

降低中繼資料延遲

藉由快取未來查閱的檔案和目錄路徑,中繼資料快取可針對大規模具有大量中繼資料的工作負載,將經常存取檔案和目錄的延遲降低 30% 以上。

顯示包含和不含中繼資料快取的延遲圖表 (以毫秒為單位)。

增加可用的 IOPS

中繼資料快取可為大規模具有大量中繼資料的工作負載增加 60% 以上的可用 IOPS。

顯示包含和不含中繼資料快取的可用 IOPS 圖表。

增加網路輸送量

中繼資料快取可為大規模具有大量中繼資料的工作負載增加 60% 以上的網路輸送量。

顯示包含和不含中繼資料快取的網路輸送量圖表。

註冊以提高檔案句柄數量限制(預覽)

若要將 SSD SMB 檔案共用的每個檔案和目錄並行句柄數目上限從 2,000 增加到 10,000,請使用 Azure 入口網站或 Azure PowerShell 註冊預覽功能。 如果您有問題,請傳送電子郵件 azfilespreview@microsoft.com。

  1. 登入 Azure 入口網站
  2. 搜尋並選取 [預覽功能]
  3. 選取 [ 類型 篩選],然後選取 [Microsoft.Storage]。
  4. 選取 [Azure Premium Files 提高開啟的最大句柄數],然後選取 [註冊]。

下一步