【ceph】vdbench的使用教程——裸盘测试和文件系统测试vdbanch
目錄
即看即用
詳細說明
vdbench簡介
常用執行選項和參數文件說明
1、文件系統
2、塊設備(裸盤測試)
運行使用
1、單機運行
2、聯機運行
結果分析
1、輸出文件
2、結果分析
測試說明
1、測試總結
2、常見測試參數
測試和思考
可視化
摘抄和參考:
bandaoyu,本文持續更新,連接:http://t.csdn.cn/7kaiZ
即看即用
1、下載 https://www.oracle.com/downloads/server-storage/vdbench-downloads.html
(外網不一定能訪問下載,可以直接在csdn下載欄搜索。下載)
2、解壓
文件夾中的vdbench.bat是個windows用,vdbench 給linux用
Linux
3、進入文件夾
./vdbench -t? ?測試一下可用性
運行測試模型
./vdbench -f {filename} -o {exportpath} #注:-f后接測試參數文件/名腳本名,-o后接導出測試結果路徑腳本的編寫
這部分可以參考解壓后的examples文件夾下的腳本,比如create_files;也可以參考output目錄下的parmfile.html
運行腳本
root@node1:/home/vdbench50406# ./vdbench? -f? examples/filesys/create_files? -jn
??其中-jn是為了做數據校驗,見文章末尾解釋。
輸出結果
windows
3、進入文件夾
可以執行./vdbench.bat -t? 測試一下可用性(需要安裝jre/jdk,要配置好環境變量)
編寫windows vdbench 腳本(或叫做配置文件)?parmfile
?./vdbench -f? parmfile
這里的parmfile需要根據測試環境修改,可以參考output目錄下的parmfile
樣例:
dd if=/dev/zero of=/tmp/disk1 bs=4 count=1M
vim parmfile
sd=sd1,lun=/tmp/disk1 size=4m
wd=wd1,sd=sd1,xfersize=4096,readpct=100
rd=run1,wd=wd1,iorate=100,elapsed=10,interval=1
[root@localhost vdbench504]# ./vdbench -f parmfile.html
?建立rsh通信
./vdbench rsh
注:此命令是用于windows系統多主機聯機跑vdbench時使用,因為windows操作系統不支持ssh,因此,vdbench提供了rsh的通信方式。在目標主機上執行此工具后,vdbench將會啟動一個java socket用于vdbench slave與master之間通信
詳細說明
vdbench簡介
vdbench 是一個磁盤I/O負載生成器,主要用于基準測試和存儲產品的測試。
vdbench 是由java語言編寫的,由oracle公司開發。
可以使用vdbench測試磁盤和文件系統的讀寫性能。
這個工具有以下優點:
- 1、能夠每秒顯示整個測試的io疊加,這樣測試整個集群的io的時候,可以把所有虛機啟動起來,然后進行io的壓測,而不是去壓單個rbd的iops,那個沒有太大的意義,只能是一個數值,真正的環境大多也不是給一個業務使用的,也可以跑起一個業務以后,再看剩余的機器還能跑多少性能
- 2、在測試輸出報告里面會根據主機統計一次io,這個面向的業務場景就是,比如某臺主機上面可能掛載多塊云盤,那么可以根據主機進行統計
- 3、在報告里面還會根據設備顯示io個延時的信息,也就是只要是測試設備,每一個的性能指標都能查到,這個的好處就是檢測集群里面的io是不是均勻的,如果做了qos,設備的測試性能值是不是跟設置限制一樣
本文鏈接:https://www.codercto.com/a/49559.html
與fio的區別
這個比fio強大的是,既能夠測試塊接口也能測試文件接口,文件接口是去模擬寫入文件,這個又和mdtest類似,但是mdtest主要是去測試元數據能力,vdbench則比較綜合。
windows下載地址:
https://www.oracle.com/downloads/server-storage/vdbench-downloads.html
使用方法
下載 https://www.oracle.com/downloads/server-storage/vdbench-downloads.html
解壓,文件夾中的vdbench.bat是個windows用,vdbench 給linux用。
使用方法:
1、編寫腳本(或叫做配置文件)
? ? ? 這部分可以參考解壓后的examples?件夾下的腳本,?如create_files;也可以參考output?錄下的parmfile.html
fsd=fsd1,anchor=/dir,depth=1,width=1,files=10000,size=8k
fwd=fwd1,fsd=fsd1,operation=read,threads=16
rd=rd1,fwd=fwd*,fwdrate=100,format=yes,elapsed=5,interval=1
注:(1)anchor=/dir 這個需要把路徑換成你ceph掛載的路徑,我的是anchor=/home/baymax/cephfs
2、運行vdbench按腳本執行
./vdbench? ?-f? ?examples/filesys/create_files? ? -jn
? ?其中-jn是為了做數據校驗,?前還不太懂。
3、輸出結果
注意事項
參數文件添加messagescan=no可以過濾掉多余的系統日志
常用執行選項和參數文件說明
vdbench 測試工具涉及到的參數非常多,這些參數可以分為 塊存儲 和 文件系統 兩部分,每 部分又是按組進行劃分的。 所有的參數都需要定義到一個參數文件當中,在被讀取的時候都是按順序進行的,所以在定義 時需要按指定的順序進行定義。
塊存儲參數文件的定義順序: HD, SD, WD, RD
文件系統參數文件的定義順序: HD, FSD, FWD, RD
HD, SD, WD, RD/HD, FSD, FWD, RD 配置文件中的關聯依賴說明:
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
#有3個客戶端主機,分別命名為hd1、hd2、hd3,IP/hostname分別是:node241、node242、node243
hd=hd1,system=node241
hd=hd2,system=node242
hd=hd3,system=node243
#待測試的存儲分別命名為sd1、sd2、sd3,sd1指代的是lun=/dev/sdb,用客戶端hd1測試,
sd2指代的是lun=/dev/sdc,用客戶端hd2測試,sd3指代的是lun=/dev/sdb,用客戶端hd3測試
sd=sd1,hd=hd1,lun=/dev/sdb,openflag=o_direct
sd=sd2,hd=hd2,lun=/dev/sdc,openflag=o_direct
sd=sd3,hd=hd3,lun=/dev/sdb,openflag=o_direct
#定義我們的工作負載,名叫wd1,這個工作負載包括sd* (就是我們上面定義的sd1、sd2、sd3)
wd=wd1,sd=sd*,seekpct=0,rdpct=0,xfersize=1M
#定義我們的vdbench要運行的內容,命名為rd1,要做的工作是我們上面定義的wd1
rd=rd1,wd=wd1,iorate=max,maxdata=100M,elapsed=64800,warmup=30,interval=5
【存儲測試】vdbench存儲性能測試工具 - https://www.cnblogs.com/luxf0/p/13321077.html
3.1 常用選項
-t: 運行5秒的塊設備測試,用于測試vdbench是否可用。
-tf: 運行5秒的文件系統測試,用于測試vdbench是否可用。
-f perfile: 加上參數文件prefile,進行實際測試。
-v: 開啟數據校驗。
-vr: 寫入數據的同時也進行數據校驗,通常用于測試時間比較長的情況。
rsh: 運行rsh守護進程,用于windows聯機運行測試。
-o xxx: 將輸出文件的路徑另為其它路徑,默認是保存在當前目錄的output目錄中。
其它選項: -j , -jn , -jr
1、文件系統
?文件系統參數文件定義順序為:HD、FSD、FWD、RD
1.1、HD(Host Define 主機定義)
非必選項,單機運行時不需要配置HD參數,一般只有在多主機聯機(給多個主機命名,以便在結果中區分)測試時才需要配置
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh hd=hd1,system=node241 hd=hd2,system=node242 hd=hd3,system=node243- hd=?標識主機定義的名稱,多主機運行時,可以使用hd1、hd2、hd3...區分
- system=?主機IP地址或主機名
- vdbench=?vdbench執行文件存放路徑,當多主機存放路徑不同時,可在hd定義時單獨指定
- user=?slave和master通信使用用戶
- shell=?可選值為rsh、ssh或vdbench,默認值為rsh,多主機聯機測試時,mater和slave主機間通信方式 當參數值為rsh時,需要配置master和slave主機rsh互信,考慮到rsh使用明文傳輸,安全級別不夠,通常情況下不建議使用這種通信方式 當參數值為ssh時,需要配置master和slave主機ssh互信,通常Linux主機聯機時使用此通信方式 當參數值為vdbench,需要在所有slave主機運行vdbench rsh啟用vdbench本身的rsh守護進程,通常Window主機聯機時使用此通信方式
1.2、FSD(File System Define 文件系統定義)
fsd=default,depth=2,width=3,files=2,size=128k fsd=fsd1,anchor=/mnt/client1 fsd=fsd2,anchor=/mnt/client2 fsd=fsd3,anchor=/mnt/client3- fsd=?標識文件系統定義的名稱,多文件系統時(fsd1、fsd2、fsd3...),可以指定default(將相同的參數作為所有fsd的默認值)
- anchor=?文件寫入根目錄
- depth=?創建目錄層級數(即目錄深度)
- width=?每層文件夾的子文件夾數
- files=?測試文件個數(vdbench測試過程中會生成多層級目錄結構,實際只有最后一層目錄會生成測試文件)
- size=?每個測試文件大小
- **distribution= ** 可選值為bottom或all,默認為bottom?--當參數值為bottom時,程序只在最后一層目錄寫入測試文件 --當參數值為all時,程序在每一層目錄都寫入測試文件
- shared=?可選值為yes或no,默認值為no,一般只有在多主機聯機測試時指定 vdbench不允許不同的slave之間共享同一個目錄結構下的所有文件,因為這樣會帶來很大的開銷,但是它們允許共享同一個目錄結構。加入設置了shared=yes,那么不同的slave可以平分一個目錄下所有的文件來進行訪問,相當于每個slave有各自等分的訪問區域,因此不能測試多個客戶的對同一個文件的讀寫 --當多主機聯機測試時,寫入的根目錄anchor為同一個路徑時,需要指定參數值為yes
?計算公式如下: ?最后一層生成文件夾個數=widthdepth??測試文件個數=(widthdepth)*files
fsd=fsd1,anchor=/dir1,depth=2,width=3,files=2,size=128k 以上述參數為例,生成目錄結構及測試文件如下: 最后一層文件夾數=3^2=9 最后一層文件數=9*2=18 /dir1/ ├── no_dismount.txt ├── vdb.1_1.dir │ ├── vdb.2_1.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ ├── vdb.2_2.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ └── vdb.2_3.dir │ ├── vdb_f0001.file │ └── vdb_f0002.file ├── vdb.1_2.dir │ ├── vdb.2_1.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ ├── vdb.2_2.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ └── vdb.2_3.dir │ ├── vdb_f0001.file │ └── vdb_f0002.file ├── vdb.1_3.dir │ ├── vdb.2_1.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ ├── vdb.2_2.dir │ │ ├── vdb_f0001.file │ │ └── vdb_f0002.file │ └── vdb.2_3.dir │ ├── vdb_f0001.file │ └── vdb_f0002.file └── vdb_control.file12 directories, 20 files1.3、FWD(FileSystem Workload Defile 文件系統工作負載定義)
fwd=default,operation=read,xfersize=4k,fileio=sequential,fileselect=random,threads=2 fwd=fwd1,fsd=fsd1,host=hd1 fwd=fwd2,fsd=fsd2,host=hd2 fwd=fwd3,fsd=fsd3,host=hd3- fwd=?標識文件系統工作負載定義的名稱,多文件系統工作負載定義時,可以使用fwd1、fwd2、fwd3...區分
- fsd=?標識此工作負載使用文件存儲定義的名稱
- host=?標識此工作負載使用主機
- operation=?可選值為read或write,文件操作方式
- rdpct=?可選值為0~100,讀操作占比百分比,一般混合讀寫時需要指定,當值為60時,則混合讀寫比為6:4
- fileio=?可選值為random或sequential,標識文件 I/O 將執行的方式
- fileselect=?random或sequential,標識選擇文件或目錄的方式
- xfersizes=?數據傳輸(讀取和寫入操作)處理的數據大小(即單次IO大小)
- threads=?此工作負載的并發線程數量
1.4、RD(Run Define 運行定義)
rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapsed=604800,interval=10- rd=?標識文件系統運行定義的名稱。
- fwd=?標識文件系統工作負載定義的名稱。
- fwdrate=?每秒執行的文件系統操作數量。設置為max,表示不做任何限制,按照最大強度自適應
- format=?可選值為yes、no或restart,標識預處理目錄和文件結構的方式 --yes表示刪除目錄和文件結構再重新創建 --no表示不刪除目錄和文件結構 --restart表示只創建未生成的目錄或文件,并且增大未達到實際大小的文件
- elapsed=?默認值為30,測試運行持續時間(單位為秒)
- interval=?結果輸出打印時間間隔(單位為秒)
2、塊設備(裸盤測試)
?塊設備參數文件定義順序為:HD、SD、WD、RD
1.1、HD(Host Define 主機定義)
非必選項,單機運行時不需要配置HD參數,一般只有在多主機聯機(給多個主機命名,以便在結果中區分)測試時才需要配置
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh hd=hd1,system=node241 hd=hd2,system=node242 hd=hd3,system=node243- hd=?標識主機定義的名稱,多主機運行時,可以使用hd1、hd2、hd3...區分
- system=?主機IP地址或主機名
- vdbench=?vdbench執行文件存放路徑,當多主機存放路徑不同時,可在hd定義時單獨指定
- user=?slave和master通信使用用戶
- shell=?可選值為rsh、ssh或vdbench,默認值為rsh,多主機聯機測試時,mater和slave主機間通信方式 當參數值為rsh時,需要配置master和slave主機rsh互信,考慮到rsh使用明文傳輸,安全級別不夠,通常情況下不建議使用這種通信方式 當參數值為ssh時,需要配置master和slave主機ssh互信,通常Linux主機聯機時使用此通信方式 當參數值為vdbench,需要在所有slave主機運行vdbench rsh啟用vdbench本身的rsh守護進程,通常Window主機聯機時使用此通信方式
1.2、SD(Storage Define 存儲定義)
sd=sd1,hd=hd1,lun=/dev/sdb,openflags=o_direct,threads=6 sd=sd3,hd=hd2,lun=/dev/sdb,openflags=o_direct,threads=6 sd=sd6,hd=hd3,lun=/dev/sdb,openflags=o_direct,threads=6- sd=?標識存儲定義的名稱
- hd=?標識主機定義的名稱
- lun=?寫入塊設備,如:/dev/sdb, /dev/sdc...
- openflags=?通過設置為o_direct,以無緩沖緩存的方式進行讀寫操作
- threads=?對SD的最大并發I/O請求數量
1.3、WD(Workload Define 工作負載定義)
wd=wd1,sd=sd*,seekpct=100,rdpct=100,xfersize=8k,skew=40 wd=wd2,sd=sd*,seekpct=100,rdpct=0,xfersize=8k,skew=10 wd=wd3,sd=sd*,seekpct=100,rdpct=100,xfersize=1024k,skew=40 wd=wd4,sd=sd*,seekpct=100,rdpct=0,xfersize=1024k,skew=10- wd=?標識工作負載定義的名稱
- sd=?標識存儲定義的名稱
- seekpct=?可選值為0或100(也可使用sequential或random表示),默認值為100,隨機尋道的百分比,設置為0時表示順序,設置為100時表示隨機。
- rdpct=?讀取請求占請求總數的百分比,設置為0時表示寫,設置為100時表示讀
- xfersize=?要傳輸的數據大小。默認設置為4k
- skew=?非必選項,一般在多個工作負載時需要指定,表示該工作負載占總工作量百分比(skew總和為100)
1.4、RD(Run Define 運行定義)
rd=rd1,wd=wd*,iorate=max,maxdata=400GB,warmup=30,elapse=604800,interval=5- rd=?標識運行定義的名稱
- wd=?標識工作負載定義的名稱
- iorate=?常用可選值為100、max,此工作負載的固定I/O速率 --當參數值為100時,以每秒100個I/Os的速度運行工作負載,當參數值設置為一個低于最大速率的值時,可以達到限制讀寫速度的效果 --當參數值為max時,以最大的I/O速率運行工作負載,一般測試讀寫最大性能時,該參數值均為max
- warmup=?預熱時間(單位為秒),默認情況下vdbench會將第一個時間間隔輸出數據排除在外,程序在預熱時間內的測試不納入最終測試結果中(即預熱結束后,才開始正式測試) --當interval為5、elapsed為600時,測試性能為2elapsed/interval(avg_2-120)時間間隔內的平均性能 --當interval為5、warmup為60、elapsed為600時,測試性能為1+(warmup/interval)(warmup+elapsed)/interval(avg_13-132)時間間隔內的平均性能
- maxdata=?讀寫數據大小,通常情況下,當運行elapsed時間后測試結束;當同時指定elapsed和maxdata參數值時,以最快運行完的參數為準(即maxdata測試時間小于elapsed時,程序寫完elapsed數據量后結束) --當參數值為100以下時,表示讀寫數據量為總存儲定義大小的倍數(如maxdata=2,2個存儲定義(每個存儲定義數據量為100G),則實際讀寫數據大小為400G) --當參數值為100以上時,表示數據量為實際讀寫數據量(可以使用單位M、G、T等)
- elapsed=?默認值為30,測試運行持續時間(單位為秒)
- interval=?報告時間間隔(單位為秒)
運行使用
1、單機運行
- Linux??示例如下,單節點針對裸盤測試,1M順序寫,測試時間600s,預熱時間60s,報告時間間隔2s
- Window??示例如下,單節點針對文件系統測試,1M順序寫,目錄深度為2,每層目錄數為3,每個目錄文件數為10,每個文件大小為200M,測試時間為600s,報告時間時間2s
2、聯機運行
- 配置免秘鑰登錄
聯機測試,需要配置此項
?示例使用三個客戶端聯機測試,使用客戶端node241作為主節點
| node241 | 66.66.66.241 |
| node242 | 66.66.66.242 |
| node243 | 66.66.66.243 |
?將每個節點IP和主機名的映射關系寫入到/etc/hosts配置文件內
echo '66.66.66.241 node241' >> /etc/hosts echo '66.66.66.242 node242' >> /etc/hosts echo '66.66.66.243 node243' >> /etc/hosts?主節點生成公鑰文件,并拷貝到其他從節點(配置主節點到從節點免秘鑰登錄)
ssh-keygen ssh-copy-id node242 ssh-copy-id node243- Linux?1、按照二、安裝部署,配置多主機ssh互信 2、master主機運行測試參數文件即可 示例如下,三節點針對裸盤聯機測試,1M順序寫,測試數據量為400G,預熱時間30s,報告間隔5s
- Window?1、所有slave主機運行vdbench本身rsh守護進程
2、master主機運行測試參數文件即可 示例如下,三節點針對文件系統聯機測試,1M順序寫,目錄深度為2,每層目錄數為3,每個目錄文件數為10000,每個文件大小為200M,測試時間為600s,報告間隔1s
E:\vdbench50406>more "Multi FileSystem.txt" hd=default,vdbench=E:\vdbench50406,user=Micah,shell=vdbench hd=hd1,system=66.66.66.250 hd=hd2,system=66.66.66.252 fsd=fsd1,anchor=Z:\Sigle-FileSystem-01,depth=2,width=3,files=10000,size=200M fsd=fsd2,anchor=Z:\Sigle-FileSystem-02,depth=2,width=3,files=10000,size=200M fwd=default,operation=write,xfersize=1M,fileio=sequential,fileselect=random,threads=16 fwd=fwd1,fsd=fsd1,host=hd1 fwd=fwd2,fsd=fsd2,host=hd2 rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=600,interval=1 E:\vdbench50406> E:\vdbench50406>vdbench -f "Multi FileSystem.txt"結果分析
當vdbench運行完負載測試后,會在安裝目錄下生成output文件夾,里邊包含測試結果文件
1、輸出文件
- errorlog.html?當運行測試啟用數據校驗時,它可能會包含一些錯誤信息,如:
- 無效的密鑰讀取
- 無效的 lba 讀取(一個扇區的邏輯字節地址)
- 無效的 SD 或 FSD 名稱讀取
- 數據損壞
- 壞扇區
- flatfile.html?vdbench 生成的一種逐列的 ASCII 格式的信息,可以使用parseflat參數解析結果
- histogram.html?一種包含報告柱狀圖的響應時間、文本格式的文件
- logfile.html?包含 Java 代碼寫入控制臺窗口的每行信息的副本。logfile.html 主要用于調試用途
- parmfile.html?包含測試運行配置參數信息
- summary.html?記錄全部數據信息,顯示每個報告間隔內總體性能情況及工作負載情況,以及除第一個間隔外的所有間隔的加權平均值
- totals.html?記錄全部數據計算之后的平均值,一般測試結果從該文件取值,除第一個間隔外所有間隔的加權平均值
2、結果分析
2.1、文件系統
#測試參數如下: hd=default,vdbench=E:\vdbench50406,user=Micah,shell=vdbench hd=hd1,system=66.66.66.250 hd=hd2,system=66.66.66.252 fsd=fsd1,anchor=Z:\Sigle-FileSystem-01,depth=2,width=3,files=10,size=4M fsd=fsd2,anchor=Z:\Sigle-FileSystem-02,depth=2,width=3,files=10,size=4M fwd=default,operation=write,xfersize=1M,fileio=sequential,fileselect=random,threads=2 fwd=fwd1,fsd=fsd1,host=hd1 fwd=fwd2,fsd=fsd2,host=hd2 rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=600,interval=5#測試結果如下: 18:47:03.001 Starting RD=format_for_rd1六月 04, 2020 .Interval. .ReqstdOps... ...cpu%... read ....read..... ....write.... ..mb/sec... mb/sec .xfer.. ...mkdir.... ...rmdir.... ...create... ....open.... ...close.... ...delete...rate resp total sys pct rate resp rate resp read write total size rate resp rate resp rate resp rate resp rate resp rate resp 18:48:40.218 avg_2-20 57.6 6.244 13.4 2.99 0.0 0.0 0.000 57.6 6.244 0.00 7.20 7.20 131072 0.2 104.49 0.2 41.526 1.8 7527.0 1.8 192.01 1.8 7134.3 1.8 21.98418:48:42.000 Starting RD=rd1; elapsed=600; fwdrate=max. For loops: None18:58:42.205 avg_2-120 6.2 1.063 13.0 2.80 0.0 0.0 0.000 6.2 1.063 0.00 6.24 6.24 1048576 0.0 0.000 0.0 0.000 0.0 0.000 1.6 47.864 1.6 2401.1 0.0 0.000?totals.html一般包括兩個部分,第一部分為文件存儲目錄結構及數據填充的平均性能值,第二部分為執行測試過程中除第一個時間間隔外所有時間間隔平均性能值,主要看第二部分的內容
-
Interval?報告間隔序號,測試結果一般為除第一個時間間隔外所有時間間隔加權平均值 如elapsed=600,interval=5,則性能結果為第2個間隔到第120個間隔的平均值(avg_2-120)
-
ReqstdOps
- rate?每秒讀寫I/O個數(讀寫IOPS),可以通過rd運行定義參數fwdrate控制 當fwdrate為max時,以最大I/O速率運行工作負載 當fwdrate為低于最大I/0速率的一個數值時,可以限制讀寫速度,以固定I/O速率運行工作負載
- resp?讀寫請求響應時間(讀寫時延),單位為ms
-
cpu%
- tatol?總的cpu占用率
- sys?系統cpu占用率
-
read pct?讀取請求占總請求數百分比占比,當為0時表示寫,當為100時表示讀
-
read
- rate?每秒讀I/O個數(讀IOPS)
- resp?讀請求響應時間(讀時延),單位為ms
-
write
- rate?每秒寫I/O個數(寫IOPS)
- resp?寫請求響應時間(寫時延),單位為ms
-
mb/sec
- read?每秒讀取速度
- write?每秒寫入速度
- total?每秒讀寫速度總和
-
xfersize?每個讀寫I/O傳輸數據量(即單個讀寫I/O大小),單位為字節B
2.2、塊設備
#測試參數如下: messagescan=no #可以過濾掉多余的系統日志 hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh hd=hd1,system=node241 hd=hd2,system=node242 hd=hd3,system=node243 sd=sd1,hd=hd1,lun=/dev/sdb,openflag=o_direct sd=sd2,hd=hd2,lun=/dev/sdb,openflag=o_direct sd=sd3,hd=hd3,lun=/dev/sdb,openflag=o_direct wd=wd1,sd=sd*,seekpct=0,rdpct=0,xfersize=1M rd=rd1,wd=wd1,iorate=max,elapsed=600,warmup=30,interval=5#測試結果如下: <a name="_1143839598"></a><i><b>19:02:15.001 Starting RD=rd1; I/O rate: Uncontrolled MAX; elapsed=600 warmup=30; For loops: None</b></i>Jun 04, 2020 interval i/o MB/sec bytes read resp read write resp resp queue cpu% cpu%rate 1024**2 i/o pct time resp resp max stddev depth sys+u sys 19:12:46.068 avg_7-126 82.74 82.74 1048576 0.00 289.158 0.000 289.158 2092.803 155.103 23.9 16.3 14.2-
interval?報告間隔序號,測試結果一般為除第一個時間時間外所有時間間隔加權平均值,如有設置預熱時間,則這部分測試數據也需要排除在外 如elapsed=600,warmup=30,interval=5,則性能測試結果為第7個間隔到第126個間隔的平均值(avg_7-126)
-
i/o rate?每秒讀寫I/O個數(讀寫IOPS),可以通過rd運行定義參數iorate控制 當iorate為max時,以最大I/O速率運行工作負載 當iorate為低于最大I/0速率的一個數值時,可以限制讀寫速度,以固定I/O速率運行工作負載
-
MB/sec?每秒讀寫速度(讀寫帶寬) 注:按官方手冊說明,
-
bytes i/0?每個讀寫I/O傳輸數據量(即單個讀寫I/O大小),單位為字節B,可以通過wd工作負載定義參數xfersize控制
-
read pct?讀取請求占請求總數的百分比,可以通過wd工作負載定義參數rdpct控制 當rdpct為0時,表示測試模型為寫 當rdpct為100時,表示測試模型為讀
-
resp time?請求響應時間(讀寫時延),單位為毫秒ms
-
read resp?讀取請求響應時間,單位為毫秒ms
-
write resp?寫入請求響應時間,單位為毫秒ms
-
resp max?最大請求響應時間,單位為毫秒ms
-
resp stddev?請求響應時間標準偏差,單位為毫秒ms
-
queue depth?讀寫I/0隊列深度
-
cpu% sys+u?內核態空間及用戶態空間CPU占用率
-
cpu% sys?內核態空間CPU占用率 2020年05月29日 16:00:16 Clear
測試說明
1、測試總結
2、常見測試參數
- 4M順序寫?目錄深度2、單級目錄數100、單個目錄文件數100、單文件大小4M、IO塊大小1M、順序寫
- 4M順序讀?目錄深度2、單級目錄數100、單個目錄文件數100、單文件大小4M、IO塊大小1M、順序讀
- 8M混合讀寫?目錄深度2、單級目錄數100、單個目錄文件數100、單文件大小8M、IO塊大小1M、混合讀寫(讀寫比為6:4)
測試和思考
我們可以自己先問自己幾個問題
- 1、如果集群里面有一臺虛擬機在跑大帶寬的業務,你去測試iops,性能能到多少,這個對應的是真實場景里面一個備份業務和一個數據庫業務混用的情況
- 2、單機iops能到多少,如果幾十臺?服務器?都同時在跑的時候,單機的iops還能到多少?
- 3、多機并發的時候,單個機器上面的io會不會受到其他的機器的io的影響
- 4、性能在遇到scrub的時候,或者遷移的時候,能夠還保留多少的性能,這個保留性能是否可控
- 5、集群寫入到70%的時候,性能是多少,是初始的百分之多少,還夠覆蓋業務IO不?
本文來源:碼農網
本文鏈接:https://www.codercto.com/a/49559.html
https://www.e-learn.cn/topic/3737957
可視化
vdbench測試實時可視化顯示 | https://www.codercto.com/a/49559.html
摘抄和參考:
【存儲測試】vdbench存儲性能測試工具 https://www.cnblogs.com/luxf0/p/13321077.html
data_errors=(1000000000,6000)
data_errors:當發生IO錯誤時,如果error總數超過1000000000或者運行時間超過6000s則退出
參數:-jn
推薦參數:-jn
打開vdbench校驗數據的參數為-v或-j,這個過程會為每一次寫操作記錄日志用于后續校驗。
使用-v參數,則生成的校驗日志直接保存于內存中,使用-j參數則生成一個校驗日志的文件,第二次校驗時,-jr即可進行日志恢復進行校驗。-v直接記錄于內存之中,速度更快,但如果存儲系統出現重啟或內存清理,那么-v參數記錄的校驗日志就丟失了;-j直接寫到磁盤上,安全有保證但速度會慢一下,此時可選擇-jn,異步寫到磁盤上,速度和安全都有一定的保證。 數據校驗原理
數據校驗的工作流程如下:每一個在存儲系統中的第一次寫操作記錄在一個表中,假定寫操作的塊大小是1m,那么這個塊大小中的每512字節中包含的兩項–8字節的邏輯字節地址(LBA)和一個字節的數據校驗key值(標記是第幾次寫,范圍為0-125,00代表創建寫,01代表第一次覆蓋寫,以此類推,當到達126后折返00,重新來一輪)會被記錄,這個過程為生成校驗日志;第二次重新運行腳本(使用參數-jr或者-vr)則根據第一次記錄的日志進行數據校驗 vdbench 過濾多余系統日志
原文鏈接:https://blog.csdn.net/weixin_27758233/article/details/112920905
錯誤記錄
vdbench ?Waiting for configuration information from slave hd1
解決:重啟客戶端
https://community.oracle.com/tech/apps-infra/discussion/3938074/waiting-for-configuration-information-from-slave-hd2-waiting-for-configuration-information-from-s
總結
以上是生活随笔為你收集整理的【ceph】vdbench的使用教程——裸盘测试和文件系统测试vdbanch的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iweboffice 保存成html,金
- 下一篇: vdbench的作用_vdbench