vdbench配置說明

1、前言

一、介紹

 vdbench是一個I/O工做負載生成器,一般用於驗證數據完整性和度量直接附加(或網絡鏈接)存儲性能。它能夠運行在windows、linux環境,可用於測試文件系統或塊設備基準性能。html

二、版本包獲取

2、安裝部署

一、Linux客戶端

  • 部署jdk環境

 解壓縮jdk安裝包至/opt目錄linux

tar -zxvf jdk-8u251-linux-x64.tar.gz -C /opt/

 配置jdk環境變量shell

echo 'JAVA_HOME=/opt/jdk1.8.0_251' >> /root/.bashrc
echo 'PATH=$JAVA_HOME/bin:$PATH' >> /root/.bashrc
echo 'CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar' >> /root/.bashrc
source /root/.bashrc
  • 配置免祕鑰

非必選項,如須要聯機測試,則須要配置此項windows

 示例使用三個客戶端聯機測試,使用客戶端node241做爲主節點緩存

客戶端主機名 客戶端IP
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

 主節點生成公鑰文件,並拷貝到其餘從節點(配置主節點到從節點免祕鑰登陸)bash

ssh-keygen
ssh-copy-id node242
ssh-copy-id node243
  • vdbench使用

 解壓縮vdbench安裝包至/root/vdbench50406目錄內,切換到vdbench解壓縮目錄執行對應參數文件便可網絡

unzip vdbench50406.zip -d /root/vdbench50406

二、Windows客戶端

  • 部署jdk環境
    直接安裝jdk軟件便可(環境變量在安裝完成後會自動添加)

  • vdbench使用
    解壓縮vdbench軟件包,切換到vdbench解壓縮目錄執行對應參數文件便可

三、注意事項

  1. 在聯機測試時,客戶端的系統時間需保持一致,不然會出現時鐘同步告警(this can lead to heartbeat issues)
  2. 客戶端的防火牆要關閉(或者設置開放程序指定端口55705560訪問)
  3. 關閉系統日誌服務rsyslog,避免運行時出現其餘日誌文件打印信息
    參數文件添加messagescan=no能夠過濾掉多餘的系統日誌

3、經常使用操做

一、經常使用操做命令

 檢查vdbench環境

./vdbench -t

 運行測試模型

注:-f後接測試參數文件名,-o後接導出測試結果路徑

./vdbench -f {filename} -o {exportpath}

 創建rsh通訊

注:此命令是用於windows系統多主機聯機跑vdbench時使用,由於windows操做系統不支持ssh,所以,vdbench提供了rsh的通訊方式。在目標主機上執行此工具後,vdbench將會啓動一個java socket用於vdbench slave與master之間通訊

./vdbench rsh

4、參數說明

vdbench可用於文件系統及塊設備基準性能測試,如下主要介紹文件系統及塊存儲的經常使用測試參數
vdbench全部測試參數都定義到一個參數文件內,在運行時按照順序被讀取執行相應操做,在參數文件定義時須要執行順序進行定義

一、文件系統

文件系統參數文件定義順序爲:HD、FSD、FWD、RD

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= 標識主機定義的名稱,多主機運行時,可使用hd一、hd二、hd3...區分
  • system= 主機IP地址或主機名
  • vdbench= vdbench執行文件存放路徑,當多主機存放路徑不一樣時,可在hd定義時單獨指定
  • user= slave和master通訊使用用戶
  • shell= 可選值爲rshsshvdbench,默認值爲rsh,多主機聯機測試時,mater和slave主機間通訊方式
    當參數值爲rsh時,須要配置master和slave主機rsh互信,考慮到rsh使用明文傳輸,安全級別不夠,一般狀況下不建議使用這種通訊方式
    當參數值爲ssh時,須要配置master和slave主機ssh互信,一般Linux主機聯機時使用此通訊方式
    當參數值爲vdbench,須要在全部slave主機運行vdbench rsh啓用vdbench自己的rsh守護進程,一般Window主機聯機時使用此通訊方式

1.二、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= 標識文件系統定義的名稱,多文件系統時(fsd1fsd2fsd3...),能夠指定default(將相同的參數做爲全部fsd的默認值)
  • anchor= 文件寫入根目錄
  • depth= 建立目錄層級數(即目錄深度)
  • width= 每層文件夾的子文件夾數
  • files= 測試文件個數(vdbench測試過程當中會生成多層級目錄結構,實際只有最後一層目錄會生成測試文件)
  • size= 每一個測試文件大小
  • **distribution= ** 可選值爲bottomall,默認爲bottom
    --當參數值爲bottom時,程序只在最後一層目錄寫入測試文件
    --當參數值爲all時,程序在每一層目錄都寫入測試文件
  • shared= 可選值爲yesno,默認值爲no,通常只有在多主機聯機測試時指定
    vdbench不容許不一樣的slave之間共享同一個目錄結構下的全部文件,由於這樣會帶來很大的開銷,可是它們容許共享同一個目錄結構。加入設置了shared=yes,那麼不一樣的slave能夠平分一個目錄下全部的文件來進行訪問,至關於每一個slave有各自等分的訪問區域,所以不能測試多個客戶的對同一個文件的讀寫
    --當多主機聯機測試時,寫入的根目錄anchor爲同一個路徑時,須要指定參數值爲yes
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node1
hd=hd2,system=node2
hd=hd3,system=node3
fsd=fsd1,anchor=/client/,depth=2,width=100,files=100,size=4k,shared=yes

 計算公式以下:
 最後一層生成文件夾個數=width^depth
 測試文件個數=(width^depth)*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.file

12 directories, 20 files
1.三、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= 標識文件系統工做負載定義的名稱,多文件系統工做負載定義時,可使用fwd一、fwd二、fwd3...區分
  • fsd= 標識此工做負載使用文件存儲定義的名稱
  • host= 標識此工做負載使用主機
  • operation= 可選值爲readwrite,文件操做方式
  • rdpct= 可選值爲0~100,讀操做佔比百分比,通常混合讀寫時須要指定,當值爲60時,則混合讀寫比爲6:4
  • fileio= 可選值爲randomsequential,標識文件 I/O 將執行的方式
  • fileselect= randomsequential,標識選擇文件或目錄的方式
  • xfersizes= 數據傳輸(讀取和寫入操做)處理的數據大小(即單次IO大小)
  • threads= 此工做負載的併發線程數量
1.四、RD(Run Define)
rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapsed=604800,interval=10
  • rd= 標識文件系統運行定義的名稱。
  • fwd= 標識文件系統工做負載定義的名稱。
  • fwdrate= 每秒執行的文件系統操做數量。設置爲max,表示不作任何限制,按照最大強度自適應
  • format= 可選值爲yesnorestart,標識預處理目錄和文件結構的方式
    --yes表示刪除目錄和文件結構再從新建立
    --no表示不刪除目錄和文件結構
    --restart表示只建立未生成的目錄或文件,而且增大未達到實際大小的文件
  • elapsed= 默認值爲30,測試運行持續時間(單位爲秒)
  • interval= 結果輸出打印時間間隔(單位爲秒)

二、塊設備

塊設備參數文件定義順序爲:HD、SD、WD、RD

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= 標識主機定義的名稱,多主機運行時,可使用hd一、hd二、hd3...區分
  • system= 主機IP地址或主機名
  • vdbench= vdbench執行文件存放路徑,當多主機存放路徑不一樣時,可在hd定義時單獨指定
  • user= slave和master通訊使用用戶
  • shell= 可選值爲rshsshvdbench,默認值爲rsh,多主機聯機測試時,mater和slave主機間通訊方式
    當參數值爲rsh時,須要配置master和slave主機rsh互信,考慮到rsh使用明文傳輸,安全級別不夠,一般狀況下不建議使用這種通訊方式
    當參數值爲ssh時,須要配置master和slave主機ssh互信,一般Linux主機聯機時使用此通訊方式
    當參數值爲vdbench,須要在全部slave主機運行vdbench rsh啓用vdbench自己的rsh守護進程,一般Window主機聯機時使用此通訊方式
1.二、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.三、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= 可選值爲0100(也可以使用sequentialrandom表示),默認值爲100,隨機尋道的百分比,設置爲0時表示順序,設置爲100時表示隨機。
  • rdpct= 讀取請求佔請求總數的百分比,設置爲0時表示寫,設置爲100時表示讀
  • xfersize= 要傳輸的數據大小。默認設置爲4k
  • skew= 非必選項,通常在多個工做負載時須要指定,表示該工做負載佔總工做量百分比(skew總和爲100)
1.四、RD(Run Define)
rd=rd1,wd=wd*,iorate=max,maxdata=400GB,warmup=30,elapse=604800,interval=5
  • rd= 標識運行定義的名稱
  • wd= 標識工做負載定義的名稱
  • iorate= 經常使用可選值爲100max,此工做負載的固定I/O速率
    --當參數值爲100時,以每秒100個I/Os的速度運行工做負載,當參數值設置爲一個低於最大速率的值時,能夠達到限制讀寫速度的效果
    --當參數值爲max時,以最大的I/O速率運行工做負載,通常測試讀寫最大性能時,該參數值均爲max
  • warmup= 預熱時間(單位爲秒),默認狀況下vdbench會將第一個時間間隔輸出數據排除在外,程序在預熱時間內的測試不歸入最終測試結果中(即預熱結束後,纔開始正式測試)
    --當interval爲五、elapsed爲600時,測試性能爲2~elapsed/interval(avg_2-120)時間間隔內的平均性能
    --當interval爲五、warmup爲60、elapsed爲600時,測試性能爲1+(warmup/interval)~(warmup+elapsed)/interval(avg_13-132)時間間隔內的平均性能
  • maxdata= 讀寫數據大小,一般狀況下,當運行elapsed時間後測試結束;當同時指定elapsedmaxdata參數值時,以最快運行完的參數爲準(即maxdata測試時間小於elapsed時,程序寫完elapsed數據量後結束)
    --當參數值爲100如下時,表示讀寫數據量爲總存儲定義大小的倍數(如maxdata=2,2個存儲定義(每一個存儲定義數據量爲100G),則實際讀寫數據大小爲400G)
    --當參數值爲100以上時,表示數據量爲實際讀寫數據量(可使用單位M、G、T等)
  • elapsed= 默認值爲30,測試運行持續時間(單位爲秒)
  • interval= 報告時間間隔(單位爲秒)

5、運行使用

一、單機運行

  • Linux
     示例以下,單節點針對裸盤測試,1M順序寫,測試時間600s,預熱時間60s,報告時間間隔2s
[root@node241 vdbench50406]# cat Single-RawDisk.html 
sd=sd1,lun=/dev/sdb,openflag=o_direct
wd=wd1,sd=sd1,seekpct=0,rdpct=0,xfersize=1M
rd=rd1,wd=wd1,iorate=max,warmup=60,elapsed=600,interval=2
[root@node241 vdbench50406]# 
[root@node241 vdbench50406]# ./vdbench -f Single-RawDisk.html
  • Window
     示例以下,單節點針對文件系統測試,1M順序寫,目錄深度爲2,每層目錄數爲3,每一個目錄文件數爲10,每一個文件大小爲200M,測試時間爲600s,報告時間時間2s
E:\vdbench50406>more "Single FileSystem.txt"
fsd=fsd1,anchor=E:\Sigle-FileSystem,depth=2,width=3,files=10,size=200M
fwd=fwd1,fsd=fsd1,operation=write,xfersize=1M,fileio=sequential,fileselect=rando
m,threads=2
rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=600,interval=5
E:\vdbench50406>
E:\vdbench50406>vdbench -f "Single FileSystem.txt"

二、聯機運行

  • Linux
    一、按照2、安裝部署,配置多主機ssh互信
    二、master主機運行測試參數文件便可
    示例以下,三節點針對裸盤聯機測試,1M順序寫,測試數據量爲400G,預熱時間30s,報告間隔5s
[root@node241 vdbench50406]# cat Multi-RawDisk
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,maxdata=100M,elapsed=64800,warmup=30,interval=5
[root@node241 vdbench50406]# 
[root@node241 vdbench50406]# ./vdbench -f Multi-RawDisk
  • Window
    一、全部slave主機運行vdbench自己rsh守護進程
E:\vdbench50406>vdbench rsh

二、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"

6、結果分析

當vdbench運行完負載測試後,會在安裝目錄下生成output文件夾,裏邊包含測試結果文件

一、輸出文件

  • errorlog.html
    當運行測試啓用數據校驗時,它可能會包含一些錯誤信息,如:
    • 無效的密鑰讀取
    • 無效的 lba 讀取(一個扇區的邏輯字節地址)
    • 無效的 SD 或 FSD 名稱讀取
    • 數據損壞
    • 壞扇區
  • flatfile.html
    vdbench 生成的一種逐列的 ASCII 格式的信息,可使用parseflat參數解析結果
./vdbench parseflat -i <flatfile.html> -o output.csv [-c col1 col2 ..] [-a] [-f col1 value1 col2 value2..]
    -i input flatfile, e.g. output/flatfile.html
    -o output CSV file name (default stdout)
    -c which column to write to CSV. Columns are written in the order specified
    -f filters: 'if (colX == valueX) ... ...' (Alphabetic compare)
    -a include only the 'avg' data. Default: include only non-avg data.
    -i是表示待分析的文件,這裏寫vdbench輸出目錄裏的flatfile.html這個文件,寫其它文件不能正常解析;
    -o是解析後的輸出文件,能夠手動指定存放目錄。文件格式爲CSV,此文件的列由-c參數指定,列的順序爲-c參數的順序
    -a是表示csv文件中只記錄測試過程當中的avg值

  示例以下:
  .\vdbench.bat parseflat -i D:\vdbench50406\output\flatfile.html -c run rate MB/sec seekpct rdpct bytes/io threads resp -o d:\output.csv -a
vdbench parseflat arguments:
Argument 0: -i
Argument 1: D:\vdbench50406\output\flatfile.html
Argument 2: -c
Argument 3: run
Argument 4: rate
Argument 5: MB/sec
Argument 6: seekpct
Argument 7: rdpct
Argument 8: bytes/io
Argument 9: threads
Argument 10: resp
Argument 11: -o
Argument 12: D:\output.csv
Argument 13: -a
14:12:49.265 ParseFlat completed successfully.
  • histogram.html
    一種包含報告柱狀圖的響應時間、文本格式的文件
  • logfile.html
    包含 Java 代碼寫入控制檯窗口的每行信息的副本。logfile.html 主要用於調試用途
  • parmfile.html
    包含測試運行配置參數信息
  • summary.html
    記錄所有數據信息,顯示每一個報告間隔內整體性能狀況及工做負載狀況,以及除第一個間隔外的全部間隔的加權平均值
  • totals.html
    記錄所有數據計算以後的平均值,通常測試結果從該文件取值,除第一個間隔外全部間隔的加權平均值

二、結果分析

2.一、文件系統

#測試參數以下:
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.984

18:48:42.000 Starting RD=rd1; elapsed=600; fwdrate=max. For loops: None

18: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控制
      fwdratemax時,以最大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.二、塊設備

#測試參數以下:
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控制
    ioratemax時,以最大I/O速率運行工做負載
    iorate爲低於最大I/0速率的一個數值時,能夠限制讀寫速度,以固定I/O速率運行工做負載

  • MB/sec
    每秒讀寫速度(讀寫帶寬
    注:按官方手冊說明,

  • bytes i/0
    每一個讀寫I/O傳輸數據量(即單個讀寫I/O大小),單位爲字節B,能夠經過wd工做負載定義參數xfersize控制

  • read pct
    讀取請求佔請求總數的百分比,能夠經過wd工做負載定義參數rdpct控制
    rdpct0時,表示測試模型爲寫
    rdpct100時,表示測試模型爲讀

  • 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

7、測試說明

一、測試總結

  1. 線程數(thread)通常設置爲客戶端CPU線程數總大小 grep 'processor' /proc/cpuinfo | sort -u | wc -l
  2. 測試總數據量須要爲客戶端內存大小兩倍
  3. 測試讀模型時須要清理客戶端緩存信息 sync;echo 3 > /proc/sys/vm/drop

二、常見測試參數

  • 4M順序寫
    目錄深度二、單級目錄數100、單個目錄文件數100、單文件大小4M、IO塊大小1M、順序寫
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test01,depth=2,width=100,files=100,size=4M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequential,fileselect=sequential,operation=write,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1
  • 4M順序讀
    目錄深度二、單級目錄數100、單個目錄文件數100、單文件大小4M、IO塊大小1M、順序讀
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test02,depth=2,width=100,files=100,size=4M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=sequential,fileselect=sequential,operation=read,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1
  • 8M混合讀寫
    目錄深度二、單級目錄數100、單個目錄文件數100、單文件大小8M、IO塊大小1M、混合讀寫(讀寫比爲6:4)
hd=default,vdbench=/root/vdbench50406,user=root,shell=ssh
hd=hd1,system=node21
hd=hd2,system=node22
hd=hd3,system=node23
hd=hd4,system=node24
hd=hd5,system=node25
hd=hd6,system=node26
fsd=fsd1,anchor=/client/test03,depth=2,width=100,files=100,size=8M,shared=yes
fwd=format,threads=24,xfersize=1m
fwd=default,xfersize=1m,fileio=random,fileselect=random,rdpct=60,threads=24
fwd=fwd1,fsd=fsd1,host=hd1
fwd=fwd2,fsd=fsd1,host=hd2
fwd=fwd3,fsd=fsd1,host=hd3
fwd=fwd4,fsd=fsd1,host=hd4
fwd=fwd5,fsd=fsd1,host=hd5
fwd=fwd6,fsd=fsd1,host=hd6
rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=600,interval=1
相關文章
相關標籤/搜索