swingbench-免費的oracle性能壓測工具

    SwingBench介紹:
html

    SwingBench由負載生成器,協調器和集羣概述組成。該軟件使得可以生成負載而且將圖表的事務/響應時間映射。sql

    SwingBench可用於演示和測試諸如實際應用集羣,在線表重建,備用數據庫,在線備份和恢復等技術
數據庫

    SwingBench附帶的代碼包括6個基準,OrderEntry,SalesHistory,TPC-DS Like,JSON,CallingCircle和StressTest ..
服務器

    OrderEntry基於Oracle11g / Oracle12c附帶的「oe」模式。它已被修改,以便不須要安裝Spatial,Intermedia架構。它能夠連續運行(直到你用完了空間)。它在少許表上引入了大量爭用,旨在強調互連和內存。它使用位於bin目錄中的「oewizard」進行安裝。基準測試都存在純jdbc和pl / sql(較低的網絡開銷)變體。
網絡

    SalesHistory基於Oracle11g / Oracle12c附帶的「sh」架構,旨在測試複雜查詢在對大型表進行運行時的性能。它是隻讀的,能夠按照從1GB到1TB的默認大小進行縮放。自定義模式還容許建立更小和更大的模式架構

    CallingCircle(不建議使用)模擬爲在線電信應用程序生成的SQL。它須要在每次運行以前將數據文件從數據庫服務器生成並複製到負載生成器,一般須要1到8 GB的磁盤空間。兩個基準都是CPU密集型。經驗代表,您至少須要1臺處理器的負載發生器到數據庫服務器的每兩個處理器。它旨在強調CPU和內存,而不須要強大的I / O子系統。它使用位於bin目錄中的「ccwizard」進行安裝oracle

    StressTest只是根據一個熟知的表來觸發隨機插入,更新,選擇和更新。app

    JSON Stresstest基於對機場之間飛行的人員進行建模的簡單JSON文檔。它遵循基本的CRUD模型。less

    TPC-DS喜歡Benchmark是相似於TPC-DS的基準。它在單獨的配置文件中具備查詢和事務工做負載。dom

    SwingBench下載:

    SwingBench官方網址:http://www.dominicgiles.com/swingbench.html,能夠download下最新2.6版本的SwingBench,須要先安裝好jdk8,能夠直接從oracle官網下載rpm安裝便可。SwingBench包文件解壓後以下:

    wKioL1mAH66Tu6jfAABw2dC3Nq0785.png-wh_50

    生成測試數據:

    以order entry爲示例:

    圖形界面生成測試數據和壓測:

    cd /tmp/swingbench/bin

    ./oewizard

    wKiom1mAIOvRTr9yAAGgACMP7fc651.png-wh_50

    選擇version2.0, next

    wKioL1mAIOvRDR6ZAAGYcmCUvYk335.png-wh_50

    選擇create the order entry schema,next

    wKiom1mAIS7T1CMHAAGKzwDR9s4350.png-wh_50

    配置connect string、username和password, next

    wKiom1mAIS_BK4y2AAG0EHiuWUY624.png-wh_50

    配置tablespaces的datafile, next

    wKioL1mAITDQ3XK1AAGepHvt7_o842.png-wh_50

    配置schema的size, next

    wKioL1mAITHBPGq4AAG-urt05v8832.png-wh_50

    默認值爲CPU個數*2, next

    wKiom1mAITLQ3R5JAAGZveV91-Q754.png-wh_50

    點擊yes ,  next

    wKioL1mAITOwDpO6AAGBu6-oL2g148.png-wh_50

    開始運行sql腳本生產測試數據,這裏須要等待。

    wKiom1mAITPxje7dAAE9YrSiuRA643.png-wh_50

    數據已成功生成,接下來能夠作壓測了。

    wKioL1mAITShJCoMAAHojWoiXAg998.png-wh_50


    開始性能壓測:

    cd /tmp/swingbench/bin

    ./swingbench

    修改connect string,配置server monitoring相關配置參數,調整transtions的load ratio、number of users。

    wKiom1mAImSDm4-8AAIGr3Z2WhI400.png-wh_50

    能夠收集數據庫信息,生成awr報告。啓動壓測

    wKioL1mAImWiTqh-AAJCSlKENhc681.png-wh_50

    能夠在output標籤上查看壓測結果

    wKiom1mAJGngEKVfAAK5HL7PJYo782.png-wh_50

    也能夠在將結果保存在bin目錄下,XML格式

    wKioL1mAJb2wmcXoAALEwMUs1Dk163.png-wh_50

    測試結果對比生成html文件,用bmcompare工具

    wKiom1mAJv-S07FIAAAyh-V8Jg0464.png-wh_50

    wKiom1mAJ87DCE4VAAIqoX3QNrg048.png-wh_50


    命令行界面生成測試數據和壓測:

[root@oracle bin]# time ./oewizard -cl -create -scale 1 -cs //oracle:1521/xcky -dba system -dbap oracle -u soe1 -p soe1 -ts soe -df /u01/app/oracle/oradata/xcky/soe.dbf -tc 4 -s                
The following statement failed : GRANT EXECUTE ON dbms_lock TO soe1 : Due to : ORA-01031: insufficient privileges
The following statement failed : begin                                     
  $IF DBMS_DB_VERSION.VER_LE_10_2 
  $THEN 
    -- Use the default stats collection approach 
    dbms_stats.gather_schema_stats( 
                OWNNAME=> 'SOE1' 
                ,ESTIMATE_PERCENT=>DBMS_STATS.AUTO_SAMPLE_SIZE 
                ,BLOCK_SAMPLE=>TRUE 
                ,METHOD_OPT=>'FOR ALL COLUMNS SIZE SKEWONLY' 
                ,DEGREE=> 4 
                ,GRANULARITY=>'ALL' 
                ,CASCADE=>TRUE); 
  $ELSIF DBMS_DB_VERSION.VER_LE_11_2 
  $THEN 
     -- Oracle 11g release 2. Emable concurrent stats collection 
     dbms_output.put_line('database version is less than or equal to 11.2'); 
     DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','WAREHOUSES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','INVENTORIES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','PRODUCT_INFORMATION','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','PRODUCT_DESCRIPTIONS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDERENTRY_METADATA','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','CUSTOMERS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ADDRESSES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDER_ITEMS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDERS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','LOGON','INCREMENTAL','TRUE'); 
     DBMS_STATS.GATHER_SCHEMA_STATS('SOE1'); 
  $ELSIF DBMS_DB_VERSION.VER_LE_12 
  $THEN 
     -- Oracle 12c. Concurrent Stats collection work slightly different in this release 
     execute immediate q'[ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'DEFAULT_PLAN']'; 
     execute immediate q'[ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 4 ]'; 
     DBMS_STATS.SET_GLOBAL_PREFS('CONCURRENT','MANUAL'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','WAREHOUSES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','INVENTORIES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','PRODUCT_INFORMATION','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','PRODUCT_DESCRIPTIONS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDERENTRY_METADATA','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','CUSTOMERS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ADDRESSES','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDER_ITEMS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','ORDERS','INCREMENTAL','TRUE'); 
     DBMS_STATS.SET_TABLE_PREFS('SOE1','LOGON','INCREMENTAL','TRUE'); 
     DBMS_STATS.GATHER_SCHEMA_STATS('SOE1'); 
  $END 
end; 
 : Due to : ORA-20001: Invalid input values for pname
ORA-06512: at "SYS.DBMS_STATS", line 26595
ORA-06512: at "SYS.DBMS_STATS", line 26751
ORA-06512: at line 17
============================================
|           Datagenerator Run Stats        |
============================================
Connection Time                        0:00:00.004
Data Generation Time                   0:03:18.996
DDL Creation Time                      0:03:47.528
Total Run Time                         0:07:06.530
Rows Inserted per sec                       60,836
Data Generated (MB) per sec                    5.0
Actual Rows Generated                   13,002,033
Post Creation Validation Report
===============================
The creation of the schema appears to have been unsuccessful. See the following sections for further details.
Valid Objects
=============
Valid Tables : 'ORDERS','ORDER_ITEMS','CUSTOMERS','WAREHOUSES','ORDERENTRY_METADATA','INVENTORIES','PRODUCT_INFORMATION','PRODUCT_DESCRIPTIONS','ADDRESSES','CARD_DETAILS'
Valid Indexes : 'PRD_DESC_PK','PROD_NAME_IX','PRODUCT_INFORMATION_PK','PROD_SUPPLIER_IX','PROD_CATEGORY_IX','INVENTORY_PK','INV_PRODUCT_IX','INV_WAREHOUSE_IX','ORDER_PK','ORD_SALES_REP_IX','ORD_CUSTOMER_IX','ORD_ORDER_DATE_IX','ORD_WAREHOUSE_IX','ORDER_ITEMS_PK','ITEM_ORDER_IX','ITEM_PRODUCT_IX','WAREHOUSES_PK','WHS_LOCATION_IX','CUSTOMERS_PK','CUST_EMAIL_IX','CUST_ACCOUNT_MANAGER_IX','CUST_FUNC_LOWER_NAME_IX','ADDRESS_PK','ADDRESS_CUST_IX','CARD_DETAILS_PK','CARDDETAILS_CUST_IX'
Valid Views : 'PRODUCTS','PRODUCT_PRICES'
Valid Sequences : 'CUSTOMER_SEQ','ORDERS_SEQ','ADDRESS_SEQ','LOGON_SEQ','CARD_DETAILS_SEQ'
Valid Code : 
Invalid Objects (1)
================
Invalid Tables : 
Invalid Indexes : 
Invalid Views : 
Invalid Sequences : 
Invalid Code : 'ORDERENTRY'
Missing Objects (0)
================
Missing Tables : 
Missing Indexes : 
Missing Views : 
Missing Sequences : 
Missing Code : 
Schema Created
real    7m51.663s
user    3m23.913s
sys     0m24.096s
[root@oracle bin]# ./charbench -u soe1 -p soe1 -uc 1 -min 10 -max 200 -rt 00:01 -a -s -r scale1_100user.xml

    

    SwingBench官網上除了提供swingbench壓測工具外,還提供了其餘監控oracle數據庫的小工具,例如cpumonitor、dbtimemonitor、monitorDB、datagenerator等

    monitorDB工具:

    cd /tmp/MonitorDB/bin

    修改配置文件monitordb.xml,將Username、Password和ConnectString進行配置後保存,啓動程序。

    ./monitordb

    wKiom1mAImaSOSMCAAF9FL2OUdQ975.png-wh_50

    如dbtimemonitor工具:

    cd /tmp/dbtimemonitor/bin

    修改配置文件databases.xml,將Username、Password和ConnectString進行配置後保存,啓動程序。

    ./dbtimemonitor

    wKiom1mAImeCtPJiAAJVxO-i5c8894.png-wh_50

    如cpumonitor工具:

    cd /tmp/cpumonitor/bin

    修改配置文件cpu.xml,將HostName、Username和Password修改後保存,啓動程序

    ./cpumonitor

    wKioL1mAKgGiFoRcAAIw9Bm__GM802.png-wh_50


    參考資料:

    http://blog.csdn.net/xiaofan23z/article/details/7978998

    http://www.dominicgiles.com/swingbench.html

相關文章
相關標籤/搜索