Vdbench工具文件系统测试记录
生活随笔
收集整理的這篇文章主要介紹了
Vdbench工具文件系统测试记录
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Vdbench工具測試記錄
文件系統通用參數說明
HD
- Host Definition的簡稱,即主機定義。只有在多臺主機聯機測試的場合,或者需要對單臺主機重新設置JVM數目的時候才有設置的必要。
FSD
- Filesystem Storage Definition的簡稱,即文件系統存儲定義。這類參數是必須設置的,主要包含文件系統的掛載目錄,目錄結構,文件個數,文件大小等等。
FWD
- Filesystem Workload Definition的簡稱,即文件系統工作負載定義。這類參數是必須設置的,主要是描述需要對哪些fsd執行哪種文件訪問方式和哪種I/O負載類型的下發
RD
- Run Definition的簡稱,即運行定義。這類參數是必須設置的,主要是描述需要執行哪些fwd,需要產生多少操作數等等
單機測試-文件系統
范例腳本
#4KB場景100%寫 fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=4K,openflags=o_direct fwd=fwd1,fsd=fsd*,operation=write,xfersize=4K,fileio=random,fileselect=random,threads=32 rd=rd1,fwd=fwd1,fwdrate=max,format=yes,elapsed=600,interval=1 #4KB場景100%讀 fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=4K,openflags=o_direct fwd=fwd1,fsd=fsd*,operation=read,xfersize=4K,fileio=random,fileselect=random,threads=32 rd=rd1,fwd=fwd1,fwdrate=max,format=no,elapsed=600,interval=1 #4KB場景70%讀30%寫 fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=4K,openflags=o_direct fwd=fwd1,fsd=fsd*,rdpct=70,xfersize=4K,fileio=random,fileselect=random,threads=32 rd=rd1,fwd=fwd1,fwdrate=max,format=restart,elapsed=600,interval=1測試注意點
1.在負載參數文件中,必須要按照FSD->FWD->RD的順序進行參數設置經常使用到的參數; 2.測試時需注意預埋文件即先執行寫腳本format=yes,讀腳本使用format=restart或者no,避免無意義的時間消耗; 3.批量執行fsd時可以使用fsd*或(fdsXX-fsdXX)的方式; 4.openfilags=o_direct可以繞過文件緩存,測試出的性能更加貼近真實讀寫; 5.在執行sh vdbench -f xxx.sh -jn時,jn參數是對文件校驗,會有read值和open值; 6.在執行vdbench時最終輸出的summary文件會被上次的數據覆蓋,最好是添加-o參數指定存放位置; 7.如果有多個場景測試且目錄容量足夠的情況下,請先執行預埋腳本,先預埋所有場景數據在將后續寫相關腳本的format改為restart,讀相關腳本format改為no;這樣可以提升測試效率聯機測試-文件系統
ssh互信說明與手動執行
#互信注意點 1.只需要將主控端的公鑰發送至從端即可 2.從端需全部掛載對應的目錄 3.放置vdbench的目錄路徑需一致 #手動互信方式 ssh-keygen -f /root/.ssh/id_rsa -t rsa -P '' ssh-copy-id -i /root/.ssh/id_rsa.pub <host1_name> ssh-copy-id -i /root/.ssh/id_rsa.pub <host2_name>ssh互信腳本腳本
#!/bin/bash #較多node場景使用;注意:依賴sshpass包 PASS="redhat" #設置網段最后的地址 END="160" NET_name="eth0" IP="$(ip a s "$NET_name" | awk -F'[ /]+' 'NR==3{print $3}')" Segment=${IP%.*}.#環境清理 rm -rf /root/.ssh/id_rsa #生成可連通的主機列表 [ -e /root/SCANIP.log ] && echo "" > /root/SCANIP.log || touch /root/SCANIP.log for((i=140;i<="$END";i++));do ping -c1 -w1 "$Segment""$i" &>/dev/null && echo "$Segment""$i" >/root/SCANIP.log & done #刪除空行 sed -Ei "/^$/d" /root/SCANIP.log #生成ssh_key的rsa文件 ssh-keygen -t rsa -P "" -f /root/.ssh/id_rsa #拷貝公鑰 while read -a line ;dosshpass -p "$PASS" ssh-copy-id -i root@"$line"done</root/SCANIP.log #!/bin/bash #較少node場景下使用,注意:依賴sshpass包 PASS="Huawei12#$" IP_list=( 10.0.0.150 10.0.0.152 ) #環境清理 rm -rf /root/.ssh/id_rsa #生成ssh_key的rsa文件 ssh-keygen -f /root/.ssh/id_rsa -t rsa -P '' #拷貝公鑰 for i in "${IP_list[@]}";do sshpass -p "$PASS" ssh-copy-id -i root@"$i" done范例腳本
#聯機測試16K場景100%寫 hd=default,vdbench=/root/vdbench,user=root,shell=ssh hd=hd1,system=XX hd=hd2,system=XX fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd2,anchor=/testdir_2,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd3,anchor=/testdir_3,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd4,anchor=/testdir_4,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fwd=format,xfersize=16k,threads=64 fwd=fwd1,fsd=fsd*,host=(hd1,hd2),operation=write,xfersize=16k,fileio=random,fileselect=random,threads=64 rd=rd1,fwd=fwd*,fwdrate=max,format=yes,elapsed=300,interval=1 #聯機測試16K場景100%讀 hd=default,vdbench=/root/vdbench,user=root,shell=ssh hd=hd1,system=XX hd=hd2,system=XX fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd2,anchor=/testdir_2,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd3,anchor=/testdir_3,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd4,anchor=/testdir_4,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fwd=format,xfersize=16k,threads=64 fwd=fwd1,fsd=fsd*,host=(hd1,hd2),operation=read,xfersize=16k,fileio=random,fileselect=random,threads=64 rd=rd1,fwd=fwd*,fwdrate=max,format=no,elapsed=300,interval=1 #聯機測試16K場景70%讀30%寫 hd=default,vdbench=/root/vdbench,user=root,shell=ssh hd=hd1,system=XX hd=hd2,system=XX fsd=fsd1,anchor=/testdir_1,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd2,anchor=/testdir_2,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd3,anchor=/testdir_3,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fsd=fsd4,anchor=/testdir_4,depth=3,width=8,files=1000,size=16K,openflags=o_direct,shared=yes fwd=format,xfersize=16k,threads=64 fwd=fwd1,fsd=fsd*,host=(hd1,hd2),rdpct=70,xfersize=16k,fileio=random,fileselect=random,threads=64 rd=rd1,fwd=fwd*,fwdrate=max,format=restart,elapsed=300,interval=1測試注意點
1.shared=yes,會增加互信時目錄檢測次數,但如果設置為NO,vdbench就不會對相同文件進行讀寫,如果希望更貼近真實讀寫數據時請設置為YES; 2.host參數不可以類似fsd使用通配符"*|-",只可以使用"(fsd1,fds2)”的方式增加; 3.掛載選項推薦增加 vers=3,wsize=XXX,rsize=XXX 這些參數; 4.啟動進程后可以到從端執行ps -ef|grep java查看是否有java-clent進程啟動; 5.shared=yes與format=yes不可共存;當shared=yes時,format只可以選擇no或restart 6.如果有多個場景測試且目錄容量足夠的情況下,請先執行預埋腳本,先預埋所有場景數據在將后續寫相關腳本的format改為restart,讀相關腳本format改為no;這樣可以提升測試效率輸出結果
界面參數說明
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:處理器利用率:系統時間 open :打開文件數 close :關閉文件數 rmdir:刪除文件夾數 create:創建文件數 mkdir:創建文件夾數 delete:刪除文件數日志存放路徑
在沒有使用`-o`參數時,默認路徑為../vdbench/output/summary.html下存放 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)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工具文件系统测试记录的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux使用c语言获取网关地址
- 下一篇: 很不错的在线Office控件:IWebO