vdbench安装及使用
一、 vdbench簡介
vdbench是一個 I/O 工作負載生成器,用于驗證數據完整性和度量直接附加和網絡連接的存儲的性能。它是一個免費的工具,容易使用,而且常常用于測試和基準測試。
可以使用vdbench測試磁盤和文件系統的讀寫性能。
注:此軟件的帶寬及字節結算單位均為1024進制。
二、 vdbench安裝
- 環境準備
Vdbench使用需要有java環境, centos直接yum install jre即可,windows主機上則需要安裝jre,并添加到環境變量中。 - 程序測試
環境配置好后,直接在vdbench目錄下執行./vdbench -t進行測試,如果正常,會在目錄下自動生成一個output目錄,否則可嘗試修改下文件及目錄權限后再次進程測試驗證程序可用性。
三、 vdbench使用
1. 測試用例
- 塊存儲測試(單客戶端):
按照下述測試用例對具體字段進行解釋:
在1-5行中說明了測試使用的磁盤,sd為自定義名稱,一般從sd1起命名,lun為測試時使用的卷的名稱,openflag設置讀寫操作方式,一般為o_direct,即以無緩沖緩存的方式進行讀寫操作,threads規定了測試使用線程數;
第七行中規定了工作負載,wd為自定義工作負載名稱,sd設置工作負載中使用到的存儲設備,例中sd*則表示此工作負載使用了全部以sd開頭的存儲設備,seekpct為隨機操作比例,為0則為順序操作,rdpct為讀操作比例,為0即為此工作負載全部為寫操作,xfersize為操作數據的大小;
最后一行中設定了運行參數,rd為運行定義的名稱,wd為使用到的工作負載名稱,iorate為測試時的速率,max即為以最大的速率進行測試,elapsed為正式測試時長,interval為命令行打印輸出的時間間隔,warmup為預測試的時長(預測試時間內的測試值不會計入最終測試結果中),elapsed、interval和warmup的單位均為s。
- 塊存儲測試(多客戶端):
多客戶端測試前,首先要確定主測試客戶端,保證每個測試客戶端上均可正常運行vdbench測試軟件,且主測試客戶端可以和其他測試客戶端通過ssh免密訪問。
按照下述測試用例對具體字段進行解釋:
在第一行中說明了測試客戶端的默認設置,vdbench說明了默認的vdbench軟件存放位置,user為客戶端用戶名,shell為ssh,說明通過ssh訪問;
第2-5行中說明了測試客戶端,hd為自定義客戶端名稱,system為測試客戶端ip地址,本地可用localhost代替,若存放目錄或用戶名等項與第一行default中不一致,可再單獨添加參數聲明文件位置及用戶信息;
第7-11行中說明了使用的磁盤,hd參數說明了lun參數指定的卷是在哪個客戶端上的,其余參數與單客戶端時一致;
其余設置均與單客戶端一致,不再贅述。
- 文件存儲測試(單客戶端):
文件存儲測試與塊存儲測試的區別在于,塊存儲測試會直接寫入或讀取數據,不管掛載磁盤的狀態,但文件存儲測試在測試前會預先寫入測試所需要的文件,即下方陳述的fsd中的文件及目錄,所有文件及目錄按照設定寫入完畢后,才會進行正式測試,所以,一般來說,文件測試耗時會比塊存儲測試長很多。
按照下述測試用例對具體字段進行解釋:
在第一行中說明了測試使用的文件目錄,fsd為自定義文件系統名稱,anchor為測試文件目錄,depth為測試時目錄的深度,width為測試時每個文件夾的子文件夾個數,files為單文件夾中文件的個數,size為文件大小,以上例為例,測試時測試目錄創建10個目錄,在此10個目錄中各再創建10個子目錄,共110個目錄,每個最底層目錄中存放2000個文件,共20w個文件,每個文件大小為4MiB;
第二行中規定了文件工作負載,fwd為自定義文件工作負載名稱,fsd設置工作負載中使用到的文件系統,operation為操作類型,可選設read或write,xfersize為數據傳輸數據大小,fileio為文件操作方式,可選設random和sequential,threads為測試使用線程數;
最后一行中設定了運行參數,rd為運行定義的名稱,fwd為使用到的文件工作負載名稱,fwdrate為測試時的速率elapsed為正式測試時長,interval為命令行打印輸出的時間間隔,elapsed和interval的單位均為s,format為預處理文件目錄的方式,no為不刪除已有文件直接進行測試,yes為無論是否已有文件目錄,均刪除后重新寫入,restart為若已有文件目錄,則直接運行測試,若無則新寫入文件目錄。
- 文件存儲測試(多客戶端):
文件存儲多客戶端測試前,和塊存儲一樣,需要先確認各個客戶端可以ssh免密訪問。
按照下述測試用例對具體字段進行解釋:
在第1-5行中說明了測試客戶端設置,與塊存儲多客戶端測試一致,不再贅述;
第7-10行中說明了測試使用的文件目錄,參數意義與單客戶端時一致,不再贅述,需要注意的是,以上例方式進行測試時,需要每個fsd的anchor值均不一致,若一致,則需要加上參數shared=yes,且測試中用到的文件個數為所有fsd中聲明的文件個數之和;
第12-15行中說明了文件工作負載配置,與單客戶端不一致的是增加了一個參數host,在host上聲明了工作負載工作的測試客戶端;
其余設置均與單客戶端一致,不再贅述。
2. 測試執行
單客戶端執行測試時,在vdbench文件目錄下執行命令行./vdbench -f [測試用例文件] 即可;
多客戶端測試時,則需在主測試客戶端上執行上述命令;
上述命令也可加-o參數指定測試結果輸出目錄,還可加入-jn參數進行測試數據校驗。
3. 結果查看
在測試中查看打印即可查看實時測試結果,測試完成后,也會在命令行匯總輸出最終測試結果。
interval為avg的一行均為最終測試結果,i/o為每秒平均io操作數,MB/sec為平均每秒帶寬,bytes為每io操作的字節大小,read pct為讀百分比,resp time為平均響應時長,write resp為平均寫時延,read resp為讀平均時延,read max為讀最大時延,write max為寫最大時延。
此外,測試結束后,也可在output文件夾或測試執行時指定的輸出文件夾中查看測試結果,以下為output文件夾中各個文件包括的內容:
- errorlog.html:文件中顯示測試時出現的一些錯誤信息,包括io錯誤信息和數據無效信息等;
- histogram.html:一種包含報告柱狀圖的響應時間的文件,此報告只在文件測試后有數據內容;
- logfile.html:包含Java 代碼寫入控制臺窗口的每行信息的副本,logfile.html 主要用于調試用途;
- parmfile.html:包含測試運行配置參數信息;
- summary.html:記錄全部數據信息,顯示每個報告間隔內總體性能情況及工作負載情況,以及除預測試時間外的所有間隔的加權平均值;
- totals.html:記錄全部數據計算之后的平均值,一般測試結果從該文件取值,除預測試時間外所有間隔的加權平均值。
總結
以上是生活随笔為你收集整理的vdbench安装及使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux-----信号量
- 下一篇: C语言中的各个段