日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

vdbench的作用_vdbench

發布時間:2023/12/31 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 vdbench的作用_vdbench 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、vdbench安裝

1、安裝java:

java -version

(vdbench的運行依賴于java)

2、檢測vdbench能夠使用:

進入vdbench相應目錄下./vdbench -t 來測試一下vdbench的可用性,如果正常,會在目錄下自動生成一個output目錄。

root@node1:/home/vdbench/vdbench50406# ./vdbench -t

如果報錯,則需修改vdbench的權限:

root@node03:/home/vdbench/vdbench50406# chmod 777 vdbench

二、執行(下面的例子是針對文件系統)

1、配置參考文件目錄vdbench504/examples/filesys

如:將紅色/dir1改為具體的測試目錄或者說是掛載點,其它參數第三小節會做詳細解釋

[root@sdosspststorage10 back]# cat seq_write

*

* Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

*

*

* Author: Henk Vandenbergh.

*

* Sequentially write randomly selected files.

*

* 'format=yes' first creates (depth*width*files) 1000 128k files.

* Test then will have eight threads each randomly select a file and sequentially

* write it. At EOF a new file is selected.

*

* Note: the amount of files and the total combined file size in this test

* guarantees that most if not all of the i/o activity is done from cache.

* Increase the amount of files and/or the file size to make sure that some

* real disk i/o activity is done.

*

fsd=fsd1,anchor=/dir1,depth=1,width=1,files=1000,size=128k

fwd=fwd1,fsd=fsd1,operation=write,xfersize=4k,fileio=sequential,

fileselect=random,threads=8

rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=120,interval=1

2、執行:

/mnt/data2/ossfuse/vdbench504/vdbench -f seq_write -jn -o ./my/

vdbench的詳細目錄 配置文件 指定output目錄

三、vdbench文件系統測試——詳細參數說明:

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

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

(2)FSD:文件系統定義

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

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

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

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

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

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

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

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

(3)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 個文件。

(4)RD:運行定義

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

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

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

yes:是每次都會先刪除目錄文件,再重新創建

restart:每次起的時候會先校驗文件、目錄是否全,不全的補上

no:不校驗文件目錄直接跑,事先最好將文件灌好

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

vdbench文件系統測試Example:

fsd=fsd1,anchor=/mnt/cephfs02,depth=3,width=10,files=20,size(512,50,4k,50),openflags=o-direct

fwd=fwd1,fsd=fsd1,operation=write,xfersize=(4k,15,8k,35,1M,50),fileio=random,fileselect=random,threads=32

rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=20,interval=1

3、運行腳本

root@node1:/home/vdbench/vdbench50406# ./vdbench -f examples/filesys/create_files -jn

其中-jn是為了做數據校驗,目前還不太懂。

4、輸出結果

會回寫輸出一大堆東西,如果沒有出現錯誤,最后會出現:

Vdbench execution completed successfully. Output directory: /home/vdbench/vdbench50406/output

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

(1)errorlog.html——當為測試啟用了數據驗證(-jn)時,它可包含一些數據塊中的錯誤的相關信息:

無效的密鑰讀取

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

無效的 SD 或 FSD 名稱讀取

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

數據損壞

壞扇區

(2)flatfile.html——包含 vdbench 生成的一種逐列的 ASCII 格式的信息。

(3)histogram.html——一種包含報告柱狀圖的響應時間、文本格式的文件。

(4)logfile.html——包含 Java 代碼寫入控制臺窗口的每行信息的副本。logfile.html 主要用于調試用途

(5)parmfile.html——顯示已包含用于測試的每項內容的最終結果

(6)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。

(7)sdN.histogram.html、sdN.html——每個 N 存儲定義的柱狀圖和存儲定義 “N” 報告。

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

interval:報告間隔序號

ReqstdOps是指每秒讀的次數(一次讀的大小是配置文件配置的xfersize=8k)

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:處理器利用率:系統時間

(9)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) 中來創建性能圖表。

四、vdbench裸盤測試——詳細參數說明:

1、對于一個塊設備,配置以下參數:

(1)HD:主機定義

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

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

Example:

hd=localhost,shell=ssh,vdbench=/home/vdbench/vdbench50406,user=root

hd=hd1,system=10.147.0.15

hd=hd2,system=10.147.37.173

注意:vdbench=dir ,這里的目錄是指所有主機上的目錄,這就表示,所有主機上的vdbench目錄都要一樣,且對應的配置要放在vdbench下面;

(2)SD:存儲定義

? sd= 標識存儲的名稱。

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

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

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

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

? openflags= 用于打開一個 lun 或一個文件的 flag_list,為了貼近真實場景,一般在這里選擇o_direct,繞過緩存機制,直接寫盤。

Example:

sd=default,threads=32,openflags=o_direct,size=340G

sd=sd1,hd=hd1,lun=/dev/sdb

sd=sd2,hd=hd1,lun=/dev/sdc

sd=sd3,hd=hd1,lun=/dev/sdd

sd=sd4,hd=hd1,lun=/dev/sde

sd=sd5,hd=hd1,lun=/dev/sdf

sd=sd6,hd=hd1,lun=/dev/sdg

sd=sd7,hd=hd1,lun=/dev/sdh

sd=sd8,hd=hd1,lun=/dev/sdi

sd=sd1,hd=hd2,lun=/dev/sdb

sd=sd2,hd=hd2,lun=/dev/sdc

sd=sd3,hd=hd2,lun=/dev/sdd

sd=sd4,hd=hd2,lun=/dev/sde

sd=sd5,hd=hd2,lun=/dev/sdf

sd=sd6,hd=hd2,lun=/dev/sdg

sd=sd7,hd=hd2,lun=/dev/sdh

sd=sd8,hd=hd2,lun=/dev/sdi

此配置區分了主機1和主機2,第一行是針對以下所有sd的通用配置;

(3)WD:工作負載定義

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

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

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

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

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

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

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

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

? openflags= 用于打開一個 lun 或一個文件的 flag_list。

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

Example:

wd=wd1,sd=sd*,xfersize=4k,rdpct=0,seekpct=100

此配置,配置了塊的大小,讀的比例和隨機比例;

(4)RD:運行定義

? rd= 標識運行的名稱。

? wd= 用于此運行的工作負載的 ID。

? iorate= (#,#,...) 一個或多個 I/O 速率。(這里可以控制運行的iops,如果不控制就設置成max)

? elapsed= time:以秒為單位的運行持續時間。默認設置為30。(設置長時間的運行,可能會使得數據更加穩定)

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

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

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

? openflags= 用于打開一個 lun 或一個文件的 flag_list。

Example:

rd=run1,wd=wd1,iorate=max,el=100000,in=1,warmup=600

此配置,配置了iorate(iops),運行時間,數據打印頻率

vdbench裸盤測試examples:

hd=localhost,shell=ssh,vdbench=/home/vdbench/vdbench50406,user=root

hd=hd1,system=200.200.213.30

sd=default,threads=16,openflags=o_direct,size=30G

sd=sd1,hd=hd1,lun=/dev/sdb

sd=sd2,hd=hd1,lun=/dev/sdc

sd=sd3,hd=hd1,lun=/dev/sdb

sd=sd4,hd=hd1,lun=/dev/sdc

sd=sd5,hd=hd1,lun=/dev/sdb

sd=sd6,hd=hd1,lun=/dev/sdc

sd=sd7,hd=hd1,lun=/dev/sdb

sd=sd8,hd=hd1,lun=/dev/sdc

wd=wd1,sd=sd*,xfersize=4k,rdpct=0,seekpct=100

rd=run1,wd=wd1,iorate=max,el=100000,in=1,warmup=600

輸出結果(部分):

Aug 13, 2018 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

07:37:56.397 1 85.00 0.33 4096 0.00 2968.303 0.000 2968.303 6136.625 1844.150 308.5 83.4 23.9

07:37:56.459 2 83.00 0.32 4096 0.00 3184.730 0.000 3184.730 7861.568 1795.753 348.0 95.5 68.2

07:37:56.478 3 23.00 0.09 4096 0.00 3441.907 0.000 3441.907 5995.742 1011.997 61.2 71.4 42.9

07:37:56.493 4 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 0.7 NaN NaN

07:37:56.647 5 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 0.8 83.3 33.3

07:38:01.132 6 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 40.8 85.7 33.3

07:38:01.162 7 44.00 0.17 4096 0.00 4070.731 0.000 4070.731 10818.509 2883.771 226.7 66.7 66.7

07:38:01.181 8 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 1.4 88.9 11.1

07:38:01.201 9 26.00 0.10 4096 0.00 4508.067 0.000 4508.067 15048.031 2778.336 27.7 91.7 55.6

07:38:01.630 10 8.00 0.03 4096 0.00 1806.932 0.000 1806.932 4328.737 1174.638 48.3 90.0 86.7

07:38:01.760 Detailed reporting is running behind; reporting of intervals 11-27 has been skipped.

07:38:54.054 28 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 15.9 NaN NaN

07:39:01.272 29 17.00 0.07 4096 0.00 4937.274 0.000 4937.274 7454.897 1474.074 39.4 NaN NaN

07:39:03.858 Detailed reporting is running behind; reporting of intervals 30-42 has been skipped.

07:39:59.480 89 84.00 0.33 4096 0.00 7764.630 0.000 7764.630 14029.705 2984.238 654.5 75.9 48.1

07:39:59.561 90 0.00 0.00 0 0.00 0.000 0.000 0.000 0.000 0.000 0.6 NaN NaN

五、多客戶端運行

3 Vdbench運行及結果查看

./vdbench -f parafile

parafiile為配置文件,如果需要校驗文件一致性可以可以指定-v參數,./vdbench -vf parafile

在vdbench安裝目錄下面有output目錄,可以查看運行及輸出結果,適用于windows及linux。

4 Linux下聯機運行

4.1 每個客戶的都需要安裝vdbench,路徑保持一致

4.2 SSH互相,選一個客戶的為父節點,把每個子節點都信任父節點

父節點為93.93.41.5,子節點為93.93.41.6

ssh-keygen -t rsa ? ? ? ? ? ? ? ? ? ? ? ? ? 生成秘鑰

chmod 755 /root/.ssh/ ? ? ? ? ? ? ? ? ? ?修改生成秘鑰的權限

scp /root/.ssh/id_rsa.pub 93.93.41.6:/root/.ssh/authorized_keys 拷貝公鑰

4.3 驗證SSH互信

在父節點上ssh每一個子節點,如果不需要輸入秘鑰就能登錄,則互信成功。

4.4 多客戶端配置文件

hd=default,dbench=/home/Vdbench/,user=root,shell=ssh

hd=hd1,system=93.93.31.7

hd=hd2,system=93.93.41.8

hd=hd3,system=93.93.41.9

fsd=fsd1,anchor=/tmp/yht/client1,depth=2,width=100,files=2000,size=100m,shared=yes

fsd=fsd2,anchor=/tmp/yht/client2,depth=1,width=1000,files=2000,zies=(20m,40,100m,60),shared=yes

fsd=fsd3,anchor=/tmp/yht/client3,depth=1000,width=1,files2000,size=1m,shared=yes

fwd=fwd1,fsd=fsd1,host=hd1,operation=read,xfersize=(1m,40,64k,60),fileio=random,fileselect=sequantial,threads=32

fwd=fwd2,fsd=fsd2,host=hd2,operation=write,xfersize=64k,fileio=random,fileselect=sequantial,threads=32

fwd=fwd3,fsd=fsd3,host=hd3,rdpct=60,xfersize=4k,fileio=random,fileselect=sequantial,threads=32

rd=rd1,fwd=(fwd1-fwd3),fwdrate=max,format=restart,elapsed=600,interval=10

elapsed:定義測試時間

interval:測試結果刷新頻率(1秒鐘刷新一次測試結果)

iorate=max:運行最大io性能

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

sd:使用之前定義過的sd。

seekpct:定義順序(seq)或隨機(random)。

rdpct定義讀寫比率:100為100%讀,100%寫。?xfersize:定義測試文件塊大小。

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

lun:定義測試磁盤為/dev/sdk。

threads:定義并行測試進程為64進程。

wd:工作描述,定義策略。

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

format=yes / no / only / restart / clean / ?directories

在開始運行之前要執行的操作

yes:刪除之前的文件結構,根據配置文件重新創建目錄和文件

no:默認使用原來的文件目錄結構,不會創建文件

restart:每次都會校驗一下數據,是否達到背景數據要求,沒有的話會繼續創建目錄和文件

elapsed:以秒為單位的運行持續時間,默認設置為??30s

腳本內容:(可按實際測試要求更改):

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

rw=rd1,wd=wd*,elapses=120,interval=1,iorate=max

若是跑文件系統,先要掛載,之后在掛載的盤上建立文件,之后把腳本里的lun=/mnt/***就可以了

注:fsd中shared,vdbench不允許不同的slave之間共享同一個目錄結構下的所有文件,因為這樣會帶來很大的開銷,

但是它們允許共享同一個目錄結構。加入設置了shared=yes,那么不同的slave可以平分一個目錄下所有的文件

來進行訪問,相當于每個slave有各自等分的訪問區域,因此不能測試多個客戶的對同一個文件的讀寫。一般不需要帶

例如:

./vdbench -f 1M_seq_read -o /1M 測試腳本名稱為1M_seq_read,測試結果放在/1M目錄下,到所在目錄查看sd1

實際使用:針對ossfuse

cat random_read_100_100_300-100th

hd=default,vdbench=/home/vdbench,user=root,shell=ssh

hd=hd1,system=10.244.124.90

hd=hd2,system=10.244.124.91

hd=hd3,system=10.244.124.92

hd=hd4,system=10.244.124.93

fsd=fsd1,anchor=/mnt/sdoss/read_1023a1,depth=2,width=100,files=300,size=128k

fsd=fsd2,anchor=/mnt/sdoss/read_1023a2,depth=2,width=100,files=300,size=128k

fsd=fsd3,anchor=/mnt/sdoss/read_1023a3,depth=2,width=100,files=300,size=128k

fsd=fsd4,anchor=/mnt/sdoss/read_1023a4,depth=2,width=100,files=300,size=128k

fwd=fwd1,fsd=fsd1,host=hd1,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd2,fsd=fsd2,host=hd2,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd3,fsd=fsd3,host=hd3,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd4,fsd=fsd4,host=hd4,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

rd=rd1,fwd=fwd*,fwdrate=max,format=no,elapsed=600,interval=5

cat random_rw_100_100_300-100th

hd=default,vdbench=/home/vdbench,user=root,shell=ssh

hd=hd1,system=10.244.124.90

hd=hd2,system=10.244.124.91

hd=hd3,system=10.244.124.92

hd=hd4,system=10.244.124.93

fsd=fsd1,anchor=/mnt/sdoss/read_1023a1,depth=2,width=100,files=300,size=128k

fsd=fsd2,anchor=/mnt/sdoss/read_1023a2,depth=2,width=100,files=300,size=128k

fsd=fsd3,anchor=/mnt/sdoss/read_1023a3,depth=2,width=100,files=300,size=128k

fsd=fsd4,anchor=/mnt/sdoss/read_1023a4,depth=2,width=100,files=300,size=128k

fwd=fwd1,fsd=fsd1,host=hd1,operation=write,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd2,fsd=fsd2,host=hd2,operation=write,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd3,fsd=fsd3,host=hd3,operation=write,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd4,fsd=fsd4,host=hd4,operation=write,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd5,fsd=fsd5,host=hd1,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd6,fsd=fsd6,host=hd2,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd7,fsd=fsd7,host=hd3,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

fwd=fwd8,fsd=fsd8,host=hd4,operation=read,xfersize=8k,fileio=random,fileselect=random,threads=100

rd=rd1,fwd=fwd*,fwdrate=max,format=no,elapsed=600,interval=5

正常測試是測試內存的2倍

比如內存是8g,那就是測試16g的數據

16g/目錄數=結果*1024*1024=轉換的結果/文件大小=結果(結果為每個目錄的文件數)

根據上面的vdbench的配置文件就是:

16/100^2=0.0016*1024*1024=1677/128=15 測試的時候需要將file寫成15就可以了

報表解讀:

默認輸出的報表在程序目錄下的output文件夾里面

(運行程序的時候也可以指定報表位置“vdbench –f parmfile –o C:\test\”)

在默認報表文件夾里面,主要看summary.html和totals.html

報表里面“starting RD=format_for_rd1”的條目數據是為了初始化測試環境(創建文件夾,空文件等),主要看下一個條目(自己定義的)

Summary.html:記錄全部的數據信息

Totals.html:記錄所有數據計算之后的平均數據

http://www.mamicode.com/info-detail-1858176.html

報錯:

1、vdbench No read validations done during a Data Validation run

參考網站:

https://community.oracle.com/message/14179733#14179733

https://community.oracle.com/thread/3945285

執行命令去除-jn

-jn是支持數據校驗,可以驗證數據一致性,可以支持crash和reboot時的數據校驗。

說明:如果想測試下vdbench數據一致性檢查功能是否生效,可以將一個LUN通過iSCSI或者FC掛載到兩臺主機,然后一臺主機對LUN進行vdbench寫操作,另一臺對該LUN進行dd寫,觀察Vdbench是否能實時檢測到數據不一致。

參考網站:https://blog.csdn.net/benfenge/article/details/58596910

總結

以上是生活随笔為你收集整理的vdbench的作用_vdbench的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。