系統硬件相關測試

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

發佈了7 篇原創文章 · 獲贊 0 · 訪問量 5722
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章