本文介紹如何在Linux系統中使用FIO工具對CPFS檔案系統進行吞吐和IOPS的效能測試。
前提條件
您已建立待測試的CPFS檔案系統,並將CPFS檔案系統掛載到ECS執行個體上。
測試的ECS執行個體有足夠的CPU(CPU大於或等於8核)和內網頻寬。
背景資訊
推薦使用FIO工具測試CPFS檔案系統效能,不同工具測試的CPFS檔案系統效能會有差異,難以反映真實效能。本文樣本的績效參數,均為Linux系統下採用FIO工具的測試結果,以此作為檔案儲存體CPFS產品效能指標參考。
操作步驟
遠端連線ECS執行個體。具體操作,請參見ECS串連方式。
安裝FIO測試載入器。如果已安裝,請跳過此步驟,直接運行效能測試命令。
作業系統
安裝命令
CentOS
sudo yum install fioRedhat
Alibaba Cloud Linux
Ubuntu
依次執行以下安裝命令:
sudo apt-get updatesudo apt-get install fio
Debian
運行效能測試命令。
隨機寫IOPS:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testing隨機讀IOPS:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=4k -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testing順序寫輸送量:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=write -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Write_Testing順序讀輸送量:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=read -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Seq_Read_Testing隨機寫輸送量:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randwrite -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Write_Testing隨機讀輸送量:
fio -direct=1 -ioengine=libaio -iodepth=1 -rw=randread -bs=1m -size=1G -numjobs=256 -runtime=600 -time_based=1 -group_reporting -directory="/mnt/cpfs/test" -name=Rand_Read_Testing
FIO參數說明
測試命令中有關FIO各參數含義的說明如下表所示。
參數 | 說明 |
direct | 表示是否使用direct I/O。預設值:1。
|
iodepth | 表示測試時的IO隊列深度。例如 |
rw | 表示測試時的讀寫策略。您可以設定為:
|
ioengine | 表示測試時FIO選擇哪種I/O引擎,通常選擇libaio,更符合日常應用模式,更多的選擇請查閱FIO官方文檔。 |
bs | 表示I/O單元的塊大小(block size)。預設值:4 KiB。讀取和寫入的值可以以read、write格式單獨指定,其中任何一個都可以為空白以將該值保留為其預設值。 |
size | 表示測試檔案大小。 FIO會將指定的檔案大小全部讀/寫完成,然後才停止測試,除非受到其他選項(例如運行時)的限制。如果未指定該參數,FIO將使用給定檔案或裝置的完整大小。也可以將大小作為1到100之間的百分比給出。例如指定size=20%,FIO將使用給定檔案或裝置完整大小的20%空間。 |
numjobs | 表示測試的並發線程數。本樣本為:256。 |
runtime | 表示測試時間,即FIO運行時間長度。 如果未指定該參數,則FIO會持續將上述size指定大小的檔案,以每次bs值為塊大小讀/寫完。 |
group_reporting | 表示測試結果顯示模式。 如果指定該參數,測試結果會匯總每個進程的統計資訊,而不是以不同任務來統計資訊。 |
directory | 表示待測試的檔案系統掛載路徑。本樣本地址為 |
name | 表示測試工作名稱,可以隨意設定。例如,本樣本的Rand_Write_Testing。 |
有關各參數的更多說明,請參見FIO MAN手冊。