基準測試結果

已完成

現在,我們會查看基準測試結果,以驗證我們在上一個單元中討論的效能祕訣。 具體來說,我們的重點是使用 SPEC SFS 基準測試套件來繁衍多執行緒,以模擬類似 EDA 生產環境的工作負載。 此外,我們也會顯示 FIO 結果,以查看幾種效能做法。

兩項基準測試工具的概觀

SPEC SFS 套件是適用於 EDA 的標準產業基準測試。 典型的 EDA 工作負載是由功能性和實體階段所組成。 功能性階段會驅動大部分的隨機 I/O 和檔案系統中繼資料作業。 實體階段會驅動大型區塊的連續讀取和寫入。

FIO 是一種 I/O 工具,可產生一致的隨機或循序讀取/寫入負載,以對儲存體目標的 IOPS 和輸送量進行效能評定。

Azure NetApp Files 中的磁碟區類型

Azure NetApp Files 提供兩種磁碟區,可針對雲端資料儲存體佈建:一般磁碟區和大型磁碟區。 下表醒目提示這兩種磁碟區之間的一些主要差異。 當您為工作負載選擇正確的磁碟區類型時,請使用此資料表作為指導。

限制 一般磁碟區 大型磁碟區
最小容量 100 GiB 50 TiB
容量上限 100 TiB 500 TiB
最低的支援服務等級 標準 標準
觀察到的輸送量上限 4,500 MiB/秒 10,240 MiB/秒
觀察到的讀取 IOPS 數上限 ~200,000 ~700,000
觀察到的寫入 IOPS 數上限 ~135,000 ~474,000

一般磁碟區的 SPEC EDA 工具基準測試結果

本節中的圖表會展示 I/O 和延遲曲線。 會檢查下列效能做法的一些組合:

  • nocto,actimeo=600
  • sysctl tuned
  • nconnect=16

當套用上述三種做法時,每秒的 I/O 作業會增加,而且仍維持低延遲 (小於 1 毫秒)。

顯示 SPEC EDA 結果的圖表,其中當所有三個做法都套用時,I/O 提升仍會維持低延遲。

下圖示範對於這種工作負載,NFSv3 的執行效能比 NFSv4.1 更佳。

顯示 SPEC EDA 的圖表,其中展示 NFS 第 3 版執行的效果比 NFS 4.1 版更佳。

下圖展示 rsize=wsize=262144(256 K) 的執行效能比其他設定更好。

顯示 SPEC EDA 結果的圖表,比較 r size 和 w size 值。

大型磁碟區的 SPEC EDA 工具基準測試結果

使用 SPEC SFS 基準測試搭配下列設定,對單一大型磁碟區執行效能閾值測試:

組態類型 設定
作業系統 RHEL 9.3 / RHEL 8.7
執行個體類型 D16s_v5
執行個體計數 10
掛接選項 nocto,actimeo=600,hard,rsize=262144,wsize=262144,vers=3,tcp,noatime,nconnect=8

相較於 Azure NetApp Files 中的一般磁碟區,這些測試會使用 SPEC SFS 基準測試,來比較大型磁碟區的效能功能。

案例 2 毫秒的 I/O 速率 2 毫秒的 MiB/秒
一個一般磁碟區 39,601 692
一個大型磁碟區 652,260 10,030

比較大型磁碟區的延遲和輸送量的圖表。

一般磁碟區的 FIO 工具基準測試結果

下列 FIO 命令可分別對 IOPS 和輸送量進行基準測試。

// FIO commands to benchmark IOPS:
// 8K Random Reads
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 8K Random Writes
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

// FIO commands to benchmark throughput:
// 64K Sequential Reads
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
// 64K Sequential Writes
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting

下列兩個圖表展示當 nocto,actimeo=600nconnect=16 且微調 sysctl 時,Azure NetApp Files 可以達到更高的 IOPS 和輸送量。

顯示較高 IOPS 的 FIO 結果圖表。

顯示較高輸送量的 FIO 結果圖表。

大型磁碟區 FIO 工具的基準測試結果

本節說明使用 FIO 基準測試的單一大型磁碟區的效能閾值。 這些測試是使用下列設定來執行:

元件 組態
Azure VM 大小 E32s_v5
Azure VM 輸出頻寬限制 2000MiB/秒 (2GiB/秒)
作業系統 RHEL 8.4
大型磁碟區大小 101 TiB Ultra (10,240 MiB/秒的輸送量)
掛接選項 hard,rsize=65536,wsize=65536,vers=3
注意:同時使用 262144 和 65536 會有類似的效能結果。

256-KiB 循序工作負載 (MiB/秒)

此圖表代表 256 KiB 循序工作負載和 1 TiB 工作集。 此圖表顯示:單一 Azure NetApp Files 大型磁碟區可以處理大約 8,518 MiB/秒的純循序寫入,以及 9,970 MiB/秒的純循序讀取。

大型磁碟區上 256-KiB 循序工作負載的橫條圖。

8-KiB 隨機工作負載 (IOPS)

此圖表代表 8-KiB 隨機工作負載和 1 TiB 工作集。 此圖表顯示:Azure NetApp Files 大型磁碟區可以處理大約 474,000 個純隨機寫入,以及大約 709,000 個純隨機讀取。

大型磁碟區上隨機工作負載的橫條圖。