基準測試結果
現在,我們會查看基準測試結果,以驗證我們在上一個單元中討論的效能祕訣。 具體來說,我們的重點是使用 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 毫秒)。
下圖示範對於這種工作負載,NFSv3 的執行效能比 NFSv4.1 更佳。
下圖展示 rsize=wsize=262144(256 K)
的執行效能比其他設定更好。
大型磁碟區的 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=600
、nconnect=16
且微調 sysctl
時,Azure NetApp Files 可以達到更高的 IOPS 和輸送量。
大型磁碟區 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/秒的純循序讀取。
8-KiB 隨機工作負載 (IOPS)
此圖表代表 8-KiB 隨機工作負載和 1 TiB 工作集。 此圖表顯示:Azure NetApp Files 大型磁碟區可以處理大約 474,000 個純隨機寫入,以及大約 709,000 個純隨機讀取。