Iozone測試
Iozone的參數,常用
-R 產生execl格式的輸出日誌
-b 將產生二進制的execl的日誌文件名。
-s 測試的文件大小
-r 文件塊大小
-a 在希望的文件系統上測試,不過只有-a的話會進行全面測試,要花費很長時間,最好用-i指定測試範圍。
-g 指定最大測試文件大小
-n 指定最小測試文件大小
-t 啓動線程的個數
-f 指定臨時測試文件
-F 指定臨時測試文件組
-C 顯示每個節點的吞吐量。
-c 測試包括文件的關閉時間
-e 測試包括flush時間
-w 測試結束後保留測試時產生的測試文件
-+k 調用文件的總大小
-+n 禁止重複讀或者寫
-+m 用來測集羣時指定的文件
iozone -Cc -e -t 12 -F $file -s 120G -+k -w -i 0 -+n -r 1M -Rb write.xls >> write
測試集羣的文件標準:
IP iozone地址 測試路徑
線程-t需要與集羣的文件內容的數量一致
Vdbench測試
sd=sd1,lun=/dev/rdsk/c0t0d0sx
wd=wd1,sd=sd1,xfersize=4096,rdpct=100
rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1
這是vdbench解壓後的一個測試例子,測試裸盤,
sd=default,size=30G,threads=12
sd=sd1,lun=/dev/sdb1,openflags=o_direct
wd=wd1,sd=(sd1,sd6),xfersize=4k,rdpct=75
wd=wd2,sd=(sd7,sd12),xfersize=8k,rdpct=100
rd=default,elapsed=10,interval=1
rd=run1,wd=(wd1,wd2),iorate=100
rd=run2,wd=(wd1,wd2),iorate=200,
在原來的基礎上添加了大小,線程。
SD:存儲定義
• sd= 標識存儲的名稱。
• host= 存儲所在的主機的 ID。
• lun= 原始磁盤、磁帶或文件系統的名稱。vdbench 也可爲您創建一個磁盤。
• threads= 對 SD 的最大併發 I/O 請求數量。默認爲 8。
• hitarea= 調整讀取命中百分比的大小。默認爲 1m。
• openflags= 用於打開一個 lun 或一個文件的 flag_list,爲了貼近真實場景,一般在這裏選擇o_direct,繞過緩存機制,直接寫盤。(但是在使用時,我因爲測的一個分區。沒有添加,然後報錯,纔將openflags添上的。)
wd=wd1,sd=(sd1,sd6),xfersize=4k,rdpct=75
WD:工作負載定義
• wd= 標識工作負載的名稱。
• sd= 要使用的存儲定義的 ID。
• host= 要運行此工作負載的主機的 ID。默認設置爲 localhost。
• rdpct= 讀取請求佔請求總數的百分比。
• rhpct= 讀取命中百分比。默認設置爲 0。
• whpct= 寫入命中百分比。默認設置爲 0。
• xfersize= 要傳輸的數據大小。默認設置爲 4k。
• seekpct= 隨機尋道的百分比。可爲隨機值。
• openflags= 用於打開一個 lun 或一個文件的 flag_list。
• iorate= 此工作負載的固定 I/O 速率。
rd=run1,wd=(wd1,wd2),iorate=100
RD:運行定義
• rd= 標識運行的名稱。
• wd= 用於此運行的工作負載的 ID。
• iorate= (#,#,...) 一個或多個 I/O 速率。(這裏可以控制運行的iops,如果不控制就設置成max)
• elapsed= time:以秒爲單位的運行持續時間。默認設置爲30。(設置長時間的運行,可能會使得數據更加穩定)
• warmup= time:加熱期,最終會被忽略。
• distribution= I/O 請求的分佈:指數、統一或確定性。
• pause= 在下一次運行之前休眠的時間,以秒爲單位。
• openflags= 用於打開一個 lun 或一個文件的 flag_list。
Fio測試:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randread -ioengine=psync -bs=16k -size=200G
-numjobs=10 -runtime=1000 -group_reporting -name=mytest
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引擎使用pync方式
rwmixwrite=30 在混合讀寫的模式下,寫佔30%
group_reporting 關於顯示結果的,彙總每個進程的信息。
此外
lockmem=1g 只使用1g內存進行測試。
zero_buffers 用0初始化系統buffer。
nrfiles=8 每個進程生成文件的數量。
順序讀:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=read -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
隨機寫:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=randwrite -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
順序寫:
fio -filename=/dev/sdb1 -direct=1 -iodepth 1 -thread -rw=write -ioengine=psync -bs=16k -size=200G -numjobs=30 -runtime=1000 -group_reporting -name=mytest
混合隨機讀寫:
fio -filename=/dev/sdb1 -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
借鑑博客:https://blog.csdn.net/u012114090/article/details/81626430