vdbench(一)


vdbench是一個 I/O 工作負載生成器,用於驗證數據完整性和度量直接附加和網絡連接的存儲的性能。它是一個免費的工具,容易使用,而且常常用於測試和基准測試。
1.安裝
需要安裝jdk 
到oracel下載vdbench504;不需要安裝,直接以絕對路徑執行就可以
建議解壓到/var/www/html/vdbench
#unzip vdbench504 -d  /var/www/html/vdbench

2.使用
./vdbench -t 
這一步先測試一下工具能不能用,如何正常,會在目錄下自動生成一個output
./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 
Vdbench distribution: vdbench504
For documentation, see 'vdbench.pdf'.

 

3.參數說明

對於一個虛擬塊設備,配置以下參數:

HD:主機定義

  • 如果您希望展示當前主機,則設置 hd= localhost。如果希望指定一個遠程主機,hd= label。

  • system= IP 地址或網絡名稱。

  • clients= 用於模擬服務器的正在運行的客戶端數量。

SD:存儲定義

  • sd= 標識存儲的名稱。

  • host= 存儲所在的主機的 ID。

  • lun= 原始磁盤、磁帶或文件系統的名稱。vdbench 也可為您創建一個磁盤。

  • threads= 對 SD 的最大並發 I/O 請求數量。默認為 8。

  • hitarea= 調整讀取命中百分比的大小。默認為 1m。

  • openflags= 用於打開一個 lun 或一個文件的 flag_list。

WD:工作負載定義

  • wd= 標識工作負載的名稱。

  • sd= 要使用的存儲定義的 ID。

  • host= 要運行此工作負載的主機的 ID。默認設置為 localhost。

  • rdpct= 讀取請求占請求總數的百分比。

  • rhpct= 讀取命中百分比。默認設置為 0。

  • whpct= 寫入命中百分比。默認設置為 0。

  • xfersize= 要傳輸的數據大小。默認設置為 4k。

  • seekpct= 隨機尋道的百分比。可為隨機值。

  • openflags= 用於打開一個 lun 或一個文件的 flag_list。

  • iorate= 此工作負載的固定 I/O 速率。

RD:運行定義

  • rd= 標識運行的名稱。

  • wd= 用於此運行的工作負載的 ID。

  • iorate= (#,#,...) 一個或多個 I/O 速率。

  • curve:性能曲線(待定義)。

  • max:不受控制的工作負載。

  • elapsed= time:以秒為單位的運行持續時間。默認設置為 30。

  • warmup= time:加熱期,最終會被忽略。

  • distribution= I/O 請求的分布:指數、統一或確定性。

  • pause= 在下一次運行之前休眠的時間,以秒為單位。

  • openflags= 用於打開一個 lun 或一個文件的 flag_list。

對於一個文件系統

對於一個文件系統,配置以下參數:

HD:主機定義。與虛擬塊設備相同。

FSD:文件系統定義

  • fsd= 標識文件系統定義的名稱

  • anchor= 將在其中創建目錄結構的目錄

  • width= 要在定位符下創建的目錄數

  • depth= 要在定位符下創建的級別數

  • files= 要在最低級別創建的文件數

  • sizes= (size,size,...) 將創建的文件大小

  • distribution= bottom(如果希望僅在最低級別創建文件)和 all(如果希望在所有目錄中創建文件)

  • openflags= 用於打開一個文件系統 (Solaris) 的 flag_list

FWD:文件系統工作負載定義

  • fwd= 標識文件系統工作負載定義的名稱。

  • fsd= 要使用的文件系統定義的 ID。

  • host= 要用於此工作負載的主機的 ID。

  • fileio= random 或 sequential,表示文件 I/O 將執行的方式。

  • fileselect= random 或 sequential,標識選擇文件或目錄的方式。

  • xfersizes= 數據傳輸(讀取和寫入操作)處理的數據大小。

  • operation= mkdir、rmdir、create、delete、open、close、read、write、getattr 和 setattr。選擇要執行的單個文件操作。

  • rdpct= (僅)讀取和寫入操作的百分比。

  • threads= 此工作負載的並發線程數量。每個線程需要至少 1 個文件。

RD:運行定義

  • fwd= 要使用的文件系統工作負載定義的 ID。

  • fwdrate= 每秒執行的文件系統操作數量。

  • format= yes / no / only / restart / clean / directories。在開始運行之前要執行的操作。

  • operations= 覆蓋 fwd 操作。選項相同。

 

運行之后的輸出文件夾文件

每次運行后,vdbench 會創建一個包含以下文件的輸出文件夾:

  • errorlog.html

  • 當為測試啟用了數據驗證時,它可包含一些數據塊中的錯誤的相關信息:

    • 無效的密鑰讀取

    • 無效的 lba 讀取(一個扇區的邏輯字節地址)

    • 無效的 SD 或 FSD 名稱讀取

    • 數據損壞,即使在使用錯誤的 lba 或密鑰時

    • 數據損壞

    • 壞扇區

  • flatfile.html

  • 包含 vdbench 生成的一種逐列的 ASCII 格式的信息。

  • histogram.html

  • 一種包含報告柱狀圖的響應時間、文本格式的文件。

  • logfile.html

  • 包含 Java 代碼寫入控制台窗口的每行信息的副本。logfile.html 主要用於調試用途

  • parmfile.html

  • 顯示已包含用於測試的每項內容的最終結果

  • resourceN-M.html、resourceN.html、resourceN.var_adm_msgs.html

    • 摘要報告

    • stdout/stderr 報告

    • 主機 N 的摘要報告

    • 最后 “nn” 行文件 /var/adm/messages 和 /var/adm/messages。每個 M 個 JVM/Slave 的目標主機 N 和主機 N 上為 0。

  • sdN.histogram.html、sdN.html

  • 每個 N 存儲定義的柱狀圖和存儲定義 “N” 報告。

  • summary.html

  • 主要報告文件,顯示為在每個報告間隔的每次運行生成的總工作負載,以及除第一個間隔外的所有間隔的加權平均值。

    • interval:報告間隔序號

    • I/O rate:每秒觀察到的平均 I/O 速率

    • MB sec:傳輸的數據的平均 MB 數

    • bytes I/O:平均數據傳輸大小

    • read pct:平均讀取百分比

    • resp time:以讀/寫請求持續時間度量的平均響應時間。所有 vdbench 時間都以毫秒為單位。

    • resp max:在此間隔中觀察到的最大響應時間。最后一行包含最大值總數。

    • resp stddev:響應時間的標准偏差

    • cpu% sys+usr:處理器繁忙 = 100(系統 + 用戶時間)(Solaris、Windows、Linux)

    • cpu% sys:處理器利用率:系統時間

  • swat_mon.txt,swat_mon_total.txt

    • vdbench 與 Sun StorageTekTM Workload Analysis Tool (Swat) Trace Facility (STF) 相結合,支持您重放使用 Swat 創建的一個軌跡的 I/O 工作負載。

    • Swat 使用 Create Replay File 選項創建和處理的軌跡文件會創建文件 flatfile.bin(flatfile.bin.gz 用於 vdbench403 和更高版本),其中包含 Swat 所識別的每個 I/O 操作的一條記錄。

    • 這些文件包含一個格式化的報告,可將該報告導入 Swat Performance Monitor (SPM) 中來創建性能圖表。 

    •  


個人總結:
1。指定一個分區報錯
Slave localhost-0 aborting: On Linux 'openflags=o_direct' is required for any lun starting with '/dev/': /dev/sdb1

解決方法
在lun后面加上openflags=o_direct
 sd=sd1,lun=/dev/sdb1,openflags=o_direct

 

使用 vdbench 來測試原始磁盤和文件系統。它有一個 Web 用戶界面可顯示詳細的性能報告。vdbench 由 Sun Microsystems 的 Henk Vandenbergh 開發,以前稱為 StorageTek。vdbench 是使用 Java? 編寫的。它在 Solaris、Windows、HP-UX、AIX、Linux、Mac OS X、zLinux 和原生 VMware 上經過了測試。

1.先將以下4個文件准備好:

jdk-6u3-Linux-i586-rpm.bin

Parmfile

vdbench502.tar

Vdbench使用指導書.doc

2.在linux下建立一個文件夾,為vdbench

3.將上面的4個文件copy到剛才建立的文件建vdbench中。

4.安裝jdk - jdk-6u3-linux-i586-rpm.bin

先賦予權限:chmod 755 *

在執行:./jdk-6u3-linux-i586-rpm.bin

執行該命令后,會讓你閱讀協議,一直點擊回車到最后,輸入yes或者y,同意協議。

5.解壓tar包: tar  -xvf  vdbench502.tar

6.執行命令:./vdbench -t。對vdbench進行測試

最后輸出: Vdbench execution completed successfully. Output directory: /root/vdbench/output。表示執行測試成功。

7.使用命名: vi parmfile 。進入文件,對里面的參數進行修改。

8.保存parmfile文件后。執行命令:./vdbench -f parmfile。就能達到效果了。

http://blog.chinaunix.net/uid-29163607-id-4855449.html

http://pt.findeen.com/vdbench使用指導書.html

2.

 

編輯測試腳本:

 

 

腳本內容:

(可按實際測試要求更改)

 

sd=sd1,lun=/dev/sdk,threads=64,range=(100g,150g)

或者

range=(30,50)

容量百分比

 

wd=wd1,sd=sd*,seekpct=seq,rdpct=100,xfersize=1M,openflags=o_direct 

rd=rd1,wd=wd*,elapsed=120,interval=1,iorate=max 

若是跑文件系統,先要掛載,之后在掛載的盤上建立文件,之后把腳本里的

lun=/mnt/***

就可以了

 

 

sd

:存儲描述,定義測試磁盤。

 

lun

:定義測試磁盤為

/dev/sdk

 

threads

:定義並行測試進程為

64

進程。

 

wd

:工作描述,定義策略。

 

sd

:使用之前定義過的

sd

 

seekpct

:定義順序

(seq)

或隨機

(random)

 

rdpct

定義讀寫比率:

100

100%

讀,

100%

寫。

 

xfersize

:定義測試文件塊大小。

 

openflags=o_direct

:遍歷整個磁盤(測試裸設備時使用)

 

 

rd

:運行描述,定義運行方式:

 

 

 

 

wd

:使用之前定義過的

wd

 

 

 

 

elapsed

:定義測試時間(

120

秒)。

 

 

 

 

interval

:測試結果刷新頻率(

1

秒鍾刷新一次測試結果)。

 

 

 

 

iorate=max

:運行最大

io

性能

 

可以更改測試磁盤、讀寫策略、塊大小、測試時間及刷新頻率來進行不同方式的測試。

 

 

注:默認

vdbench503rc5x

目錄下的

examples

里有示例,可以按照示例更改測試腳本。

 

3.

 

開始運行測試:

 

vdbench503rc5x

目錄下直接運行

 

./vdbench 

測試腳本

 

結果輸出文件存放

 

 

在目錄下可能需要權限:

chmod 

 

777 

 

vdvench 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM