fio(Flexible IO Tester) FIO是測試IOPS的很是好的工具,用來對硬件進行壓力測試和驗證,支持13種不一樣的I/O引擎, 包括:sync,mmap, libaio, posixaio, SG v3, splice, null, network, syslet, guasi, solarisaio 等等。ios
參數說明:工具
filename=/dev/sdb1 #測試文件名稱,一般選擇須要測試的盤的data目錄 direct=1 #測試過程繞過機器自帶的buffer。使測試結果更真實 rw=randwrite #測試隨機寫的I/O rw=randread #測試隨機讀的I/O rw=randrw #測試隨機寫和讀的I/O rw=read #測試順序讀的I/O rw=write #測試順序寫的I/O bs=16k #單次io的塊文件大小爲16k bsrange=512-2048 #同上,提定數據塊的大小範圍 size=5G #本次的測試文件大小爲5g,以每次4k的io進行測試 numjobs=30 #本次的測試線程爲30個 runtime=1000 #測試時間1000秒,若是不寫則一直將5g文件分4k每次寫完爲止 ioengine=psync #io引擎使用psync方式 rwmixwrite=30 #在混合讀寫的模式下,寫佔30% group_reporting #關於顯示結果的,彙總每一個進程的信息 lockmem=1G #只使用1g內存進行測試 zero_buffers #用0初始化系統buffer nrfiles=8 #每一個進程生成文件的數量
經常使用參數使用舉例:oop
#順序讀 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #順序寫 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #隨機讀 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #隨機寫 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest #混合隨機讀寫 fio -filename=/dev/sda -direct=1 -iodepth 1 -thread -rw=randrw -rwmixread=70 -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=100 -group_reporting -name=mytest -ioscheduler=noop
測試結果分析: bw:磁盤的吞吐量,這個是順序讀寫考察的重點 iops:磁盤的每秒讀寫次數,這個是隨機讀寫考察的重點測試
read : io=948896KB, bw=9475.1KB/s, iops=592, runt=100138msec write: io=380816KB, bw=3802.1KB/s, iops=237, runt=100138msec