fio 測試iops


fio的安裝:
ubuntu下:聯網時直接:apt-get install fio

centos下:先安裝libaio再安裝fio:

rpm -ivh libaio-devel-0.3.107-10.el6.x86_64.rpm
cd fio-2.0.12.1
make
make install

使用示例:
fio -filename=/dev/sdb -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bssplit=4k/30:8k/40:16k/30 -size=1G -numjobs=20  -group_reporting -name=mytest

注意:
(1)filename參數指定某個要測試的裸設備(硬盤或分區),切勿在系統分區做測試,會破壞系統分區,而導致系統崩潰。若一定要測試系統分區較爲安全的方法是:在根目錄下創建一個空目錄,在測試命令中使用directory參數指定該目錄,而不使用filename參數,例如:
fio -directory=/test/ ……
(2)關於測試文件大小:在進行寫測試時,fio會在指定目錄創建測試文件,測試文件的大小爲size參數指定的大小,若在numjobs參數中指定了多個進程,則會創建指定個數的文件,命名方法爲:name.1、name.2、name.3、……

參數:

direct       設置非緩衝io
iodepth    
ioengine=libaio        //指定io引擎
userspace_reap      //配合libaio,提高異步io的收割速度
rw=randrw                //混合隨機對寫io,默認讀寫比例5:5
rwmixwrite=20         //在混合讀寫的模式下,寫佔20%
time_based             //在runtime壓力測試周期內,如果規定數據量測試完,要重複測試 
runtime=180            //在180秒,壓力測試將終止
group_reporting      //如果設置了多任務參數numjobs,用每組報告代替每job報告
randrepeat=0         //設置產生的隨機數是不可重複的

exitall                                                     //一個job完成,就停止所有的
filename=/dev/mapper/cachedev    //壓力測試的文件名
numjobs=1                                         //job的默認數量,也就是併發數,默認是1
size=200G                                          //這job總共的io大小
refill_buffers                                      //每次提交後都重複填充io buffer
overwrite=1                                       //設置文件可覆蓋
sync=1                                              //設置異步io
fsync=1                                             //一個io就同步數據
invalidate=1                                   //開始io之前就失效buffer-cache
directory=/your_dir                        // fielname參數值的前綴
thinktime=600                              //在發佈io前等待600秒
thinktime_spin=200    //消費cpu的時間,thinktime的剩餘時間sleep
thinktime_blocks=2    //在thinktime之前發佈的block數量

bssplit=4k/30:8k/40:16k/30            //隨機讀4k文件佔30%、8k佔40%、16k佔30%
rwmixread=70                                                         //讀佔70% 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章