瞭解 Azure NetApp Files 中的效能測試方法
這些測試中使用的基準檢驗工具稱為彈性 I/O 測試器(FIO)。
測試記憶體效能限制的邊緣時,工作負載產生必須 高度平行處理 ,才能達到可能的最大結果。
這表示:
- 一個,對許多用戶端
- 多個 CPU
- 多個執行緒
- 對多個檔案執行 I/O
- 多線程網路連線(例如 nconnect)
最終目標是在作業開始等候其他作業完成之前,盡可能推送記憶體系統。 使用周遊單一網路流程的單一用戶端,或從單一檔案讀取/寫入單一檔案(例如,在單一用戶端上使用 dd 或 diskspd)不會提供指出 Azure NetApp Files 功能的結果。 相反地,這些設定會顯示單一檔案的效能,這通常是線條速度和/或 Azure NetApp 檔案 QoS 設定的趨勢。
此外,快取必須盡可能最小化,才能達到記憶體可完成的精確代表性結果。 不過,快取是一個非常真實的工具,可供新式應用程式以絕對最佳方式執行。 這些涵蓋一些快取的案例,以及透過 FIO 選項隨機處理工作負載而略過快取的案例(特別是 randrepeat=0
,若要防止記憶體上的快取,以及 防止用戶端快取的 directio )。
關於彈性 I/O 測試人員
彈性 I/O 測試人員 (FIO) 是一種 開放原始碼 工作負載產生工具,通常用於記憶體基準檢驗,因為它在定義工作負載模式時容易使用且彈性。 如需其與 Azure NetApp Files 搭配使用的相關信息,請參閱 Azure NetApp Files 的效能基準檢驗建議。
安裝 FIO
遵循 FIO 讀我檔案中的 [二進位套件] 區段,以在您選擇的平台上進行安裝。
IOPS 的 FIO 範例
本節中的 FIO 範例會使用下列設定:
- VM 執行個體大小:D32s_v3
- 容量集區服務等級和大小:進階/50 TiB
- 磁碟區配額大小:48 TiB
下列範例顯示 FIO 隨機讀取和寫入。
FIO:8k 區塊大小 100% 隨機讀取
fio --name=8krandomreads --rw=randread --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO:8k 區塊大小 100% 隨機寫入
fio --name=8krandomwrites --rw=randwrite --direct=1 --ioengine=libaio --bs=8k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
基準測試結果
如需 FIO 在 Azure NetApp Files 中執行情況的官方基準測試結果,請參閱適用於 Linux 的 Azure NetApp Files 效能基準測試。
頻寬的 FIO 範例
本節中的範例會顯示 FIO 循序讀取和寫入。
FIO:64k 區塊大小 100% 循序讀取
fio --name=64kseqreads --rw=read --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
FIO:64k 區塊大小 100% 循序寫入
fio --name=64kseqwrites --rw=write --direct=1 --ioengine=libaio --bs=64k --numjobs=4 --iodepth=128 --size=4G --runtime=600 --group_reporting
基準測試結果
如需 FIO 在 Azure NetApp Files 中執行情況的官方基準測試結果,請參閱適用於 Linux 的 Azure NetApp Files 效能基準測試。
使用 FIO 快取
FIO 可以使用特定選項來執行,以控制效能效能評定讀取和寫入檔案的方式。 在排除快取的基準檢驗中,FIO 旗標 randrepeat=0
是用來避免透過執行真正的隨機工作負載而不是重複模式來快取。
[randrepeat
]https://fio.readthedocs.io/en/latest/fio_doc.html#i-o-type)
根據預設,如果未定義時 randrepeat
,FIO 工具會將值設定為 「true」,這表示檔案中產生的數據不會真正隨機。 因此,文件系統快取不會用來改善工作負載的整體效能。
在先前的 Azure NetApp Files 基準檢驗中並未 randrepeat
定義,因此已實作一些文件系統快取。 在較最新的測試中,此選項會設定為 「0」 (false),以確保數據中有足夠的隨機性,以避免 Azure NetApp Files 服務中的文件系統快取。 這項修改會導致整體數位略低,但更準確地表示記憶體服務在略過快取時能夠執行的功能。