swingbench使用方法圖解

轉載請註明轉至:http://blog.csdn.net/xiaofan23z

 

1 Swingbench 簡述
1.1 概述
這是Oracle UK的一個員工在一個被拋棄的項目的基礎上開發的。目前穩定版本2.2,最新版本2.3,基於JDK1.5。該工具是免費的,可以在作者的網站上自由下載,並且擁有詳細的使用文檔。除了Swingbench,作者還開發了兩個相關工具:測試數據生成工具DataGenerator和跟蹤文件分析工具Trace Analyzer。
Swingbench 可以執行4種不同的標準測試(benchmark),擁有三種前端展示方式Swingbench/Charbench/Minibench,其中 Charbench是字符模式的,另外兩種是GUI模式的。另外還可以通過ClusterOverview可以聚合顯示所有的結果。Swingbench 的開發目的主要是用來展示RAC的負載和測試,但也可用於單實例環境。最新的2.3版本開始支持TimesTen內存數據庫
下載地址:
http://www.dominicgiles.com/downloads.html
作者博客:http://www.dominicgiles.com/blog/blog.html
文檔地址:http://www.dominicgiles.com/Swingbench.pdf

   目前網絡上開源的oracle壓力測試工具主要是orabm和swingbench,由於orabm不支持oracle 11g版本,因此本次測試使用了swingben進行了壓力測試。另外,swingbench還能對rac進行測試。swingbench是UK based oracle Database Solutions group開發的一個oracle壓力測試工具,好像是官方廢棄的一個項目,官方頁面http://dominicgiles.com/swingbench.html 上可以下載最新的軟件版本。swingbench可以運行在windows和linux平臺,本次以windows爲例。

2. 環境配置

  測試客戶端需要安裝JDK,無需安裝oracle client端

    swingbench的版本爲2.4 安裝後路勁如下,因是windows下做測試 所以使用 winbin目錄下的批處理文件

 

主要使用到的是如下三個bat文件

 

3.測試

 3.1 創建測試數據

swingbench不使用客戶數據,而是按自己的規則創建測試數據,(生成的測試數據只能使用一次,測試過後 需要再次測試的話,需要重新創建測試數據,這點做的不好)

到目標目錄下 運行ccwizard.bat批處理文件

會看到如下界面

點擊next 可以看到如下界面

選擇第一個 create the calling....創建測試數據

輸入你需要測試的數據庫的 //ip/sid 以及sys用戶的密碼--next

前三項不需要修改,爲swingbench自動創建的schema,只需要修改datafile的存放路徑即可。 next

選擇創建數據的數據量 最小100M 最大1TB, 我選擇爲10GB 一般需要40-60分鐘,(和你硬件io性能有關) next--finish  ok

PS:做測試時要確定對生產庫沒有影響,因我測試庫磁盤和正式庫使用同一臺存儲,swingbench在做這個生產測試數據時,佔用大量的IO,使得我的正式庫出現短暫的IO等待。赤果果的教訓啊。

數據生產結束

 

3.2錄製腳本

同樣運行ccwizard.bat批處理文件,選擇 generate data for benchmark run  下一步 下一步即可

開始錄製測試腳本

錄製結束

 

3.3基準測試

運行winbin下的swingbench.bat 但是要加參數,才能使用剛纔錄製的腳本,如圖

swingbench.bat -c  configfile

出現如此主界面  主要參數設置 好 對應的connect string,其他的參數建附錄A

將數據庫OS 的ssh打開 則可以統計主機的cpu  disk IO 信息

也可以拉出AWR報表

設置 insert,update ,select的比例

測試過程

保存測試結果

 

3.5 測試結果統計對比

  結果爲XML文檔

 

 

 

可以利用bmcompare.bat 對比兩個測試結果,語法如圖,結果會生產在本地。

 

 

 

附錄:

A,swingbench的相關測試參數

1. swingbench GUI上的users:the number of users(threads) that attach to a database and the amount and tye of work they perform. users can dynamically monitor the response times and loadwhich is displayed in a series of graphs.
這裏的users是控制同時連接到oracle的用戶數量。我們知道每個連接到oracle的用戶都將分配PGA,所以這裏應該是理解爲並行度。
2. min/max think time: 每個交易之間最小/大的思考時間。如果設置min think time,每個交易之間將間隔規定時間。
3. max
trans:如果設置將限制最大的交易數量。
4. 最頂端的transaction面板:load: Indi
cates the "weight" of the transaction in comparison to othe transactions. A higher weight indicates that it more likely to be run.
這個面板主要是可以取消一些固定的交易類型。load這個欄主要是用於調整整個測試中某些交易的權重。例如:browse pro
duct主要是select 語句,可以增加他的權重,表示更多的人查詢。
關於oewizard中的幾個參數:
Number of Customers: 預加載到數據庫表中的用戶數量。
Number of Orders:預加載到數據庫表中的Orders數量。
整個OE的測試是基於9張表的,那麼用oewizard預加載數據量不同,測試結果是不是不同呢?
對oracle自己來說,有索引的表性能在大小一定的時候是不會有什麼區別的,但是當表的行數達到一定的程度,例如幾個億行,索引性能還不如全表掃描的性能。因此對於OE所允許的範圍,我認爲表數據大小對性能影響不會很大。
Swingbench是一個壓力測試工具,其結果tp
mc也是表示每分鐘所能做的交易數量。如果預加載的數據越多,而TX中所有類型的權重固定的 話,需要調整並行users的數量,以取得一個最佳的tpms值。我之前測試的結果來看,並行user固定,預加載的數據越多,得到的tpmc結果越小, 我也有點迷糊了,後來仔細分析了之後才發覺,應該相應修改並行users的數量。
通過修改TX panel裏的各個交易類型的權重,也可以得出oracle的一些性能參數,例如查詢加重,如果tpmc的值還差不多,說明這個數據庫的查詢能力還是不錯的。

B,TPMC介紹

按照TPC的定義,流量指標描述了系統在執行Payment、Order-status、Delivery、Stock-Level這四種交易的同時,每分鐘可以處理多少個New-Order交易。所有交易的響應時間必須滿足TPC-C測試規範的要求。
流量指標值越大越好!
TPMC計算依據
爲了方便計算數據庫服務器的造型,我們約定:
" 系統同時在線用戶數爲1500人(U1);
" 平均每個用戶每分鐘發出2次業務請求(N1);
" 系統發出的業務請求中,更新、查詢、統計各佔1/3;
" 平均每次更新業務產生3個事務(T1);
" 平均每次查詢業務產生8個事務(T2);
" 平均每次統計業務產生13個事務(T3);
" 一天內忙時的處理量爲平均值的5倍;
" 經驗係數爲1.6;(實際工程經驗)
" 考慮服務器保留30%的冗餘;
服務器需要的處理能力爲:
TPC-C=U1*N1*(T1+T2+T3)/3*3*經驗係數/冗餘係數
則應用服務器的處理性能估算爲:
TPC-C= 1500*2*(3+8+13)/3*5*1.6/0.7= 274,285 tpmC
數據庫服務器關係到整個系統的穩定運行,考慮到高可靠性和高可用性,並注重設備的可擴展性和性價比,系統將配置兩臺TPC-C值不小於28萬的高性能數據庫服務器

 

 

轉載請註明轉至:http://blog.csdn.net/xiaofan23z

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章