fioforlinux
1. fio文件系統性能測試
備註:
使用的是yum 進行的安裝,大家可以使用源碼編譯安裝(centos 7)
安裝
yum install -y fio
使用
filename: 指定文件(設備)的名稱。可以通過冒號分割同時指定多個文件,如filename=/dev/sda:/dev/sdb。
directory: 設置filename的路徑前綴。在後面的基準測試中,採用這種方式來指定設備。
name: 指定job的名字,在命令行中表示新啟動一個job。
direct: bool類型,如果設置成true (1),表示不使用io buffer。
ioengine: I/O引擎,現在fio支持19種ioengine。默認值是sync同步阻塞I/O,lio是linux的native非同步I/O。關於同步非同步,阻塞和非阻塞模型可以參考文章「使用非同步 I/O 大大提高應用程序的性能」。
iodepth: 如果ioengine採用非同步方式,該參數表示一批提交保持的io單元數。該參數可參考文章「Fio壓測工具和io隊列深度理解和誤區」。
rw: I/O模式,隨機讀寫,順序讀寫等等。
bs: I/O block大小,默認是4k。
size: 指定job處理的文件的大小。
numjobs: 指定job的克隆數(線程)。
time_based: 如果在runtime指定的時間還沒到時文件就被讀寫完成,將繼續重復知道runtime時間結束。
runtime: 指定在多少秒後停止進程。如果未指定該參數,fio將執行至指定的文件讀寫完全完成。
group_reporting: 當同時指定了numjobs了時,輸出結果按組顯示。
參考說明
filename=/dev/sdb1 #測試文件名稱,通常選擇需要測試的盤的data目錄
direct=1 #測試過程繞過機器自帶的buffer。使測試結果更真實
rw=randwrite #測試隨機寫的I/O
rw=randrw #測試隨機寫和讀的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 #每個進程生成文件的數量
#順序讀
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 -ioscheler=noop
#復制下面的配置內容,將directory=/path/to/test修改為你測試硬碟掛載目錄的地址,並另存為fio.conf
[global]
ioengine=lio
direct=1
thread=1
norandommap=1
randrepeat=0
runtime=60
ramp_time=6
size=1g
directory=/path/to/test
[read4k-rand]
stonewall
group_reporting
bs=4k
rw=randread
numjobs=8
iodepth=32
[read64k-seq]
stonewall
group_reporting
bs=64k
rw=read
numjobs=4
iodepth=8
[write4k-rand]
stonewall
group_reporting
bs=4k
rw=randwrite
numjobs=2
iodepth=4
[write64k-seq]
stonewall
group_reporting
bs=64k
rw=write
numjobs=2
iodepth=4
#測試
fio fio.conf
2. linux 如何後台跑fio
關於您所詢問的尤尼克斯產品,如果想後台跑fio,可以通過運行相關程序後,選擇後台啟動的方式進行後台駐留,並且要開啟所有許可權