oracle 壓力測試工具benchmarksql


TPC-C測試
TPC-C 於 1992 年 7 月 23 日認可為新的基准測試。TPC(Transaction Processing Performance Council,事務處理性能委員會)-C是衡量聯機事務處理(OLTP,Online TransactionProcessing)系統的工業標准,是行業中公認的權威和最為復雜的在線事務處理基准測試。它通過模擬倉庫和訂單管理系統,測試廣泛的數據庫功能,包括查詢、更新和  mini-batch事務(隊列式小批量事務)。TPC-C基准測試針對一種模擬訂單錄入與銷售環境測量每分鍾事務(tpmC-transactions per minute)吞吐量。
Ø  標准測試模擬的程序環境
測試用到的模型是一個大型的批發銷售公司,在地理分布的多個區域有業務,並且使用倉庫管理。當業務擴展的時候,公司將添加新的倉庫。每個倉庫負責十個區域的供貨,每個區域 3000 個客戶服務,每個倉庫維護 100000 種商品的庫存紀錄。如下圖所示:
TPC-C 標准測試系統的數據庫有 9 個表組成,他們之間的關系如下圖所示:
其中W 代表倉庫數,框中的數字表示該表將存放的記錄條數,K代表1000,倉庫數的調整在測試中能夠體現數據庫所能支持的數據規模的能力。每個 Warehouse 的數據量,其大小約為 76823.04KB,可以有小量的變化,因為測試過程中將會插入或刪除現有記錄。可以根據每個Warehouse的數據量,計算測試過程中的數據總量。
計算公式為:數據總量(KB)≈ Warehouse個數*76823.04KB
以10個Warehouse的數據量為例計算其數據總量大小約為:768230.4KB
Ø    標准測試模擬的事務處理
TPC-C 標准測試模擬了 5 種事務處理,通過這些事務處理來模擬真實的用戶操作,事務分別為新訂單(New-Order)、支付操作(Payment)、訂單狀態查詢(Order-Status)、發貨(Delivery)、庫存狀態查詢(Stock-Level)。下面將對其執行的事務內容及特點進行詳細介紹.
1.新訂單(New-Order)
事務內容:對於任意一個客戶端,從固定的倉庫隨機選取 5-15  件商品,創建新訂單.其中 1%的訂單要由假想的用戶操作失敗而回滾。
主要特點:中量級、讀寫頻繁、要求響應快.
2.支付操作(Payment)
事務內容:對於任意一個客戶端,從固定的倉庫隨機選取一個轄區及其內用
戶,采用隨機的金額支付一筆訂單,並作相應歷史紀錄。
主要特點:輕量級,讀寫頻繁,要求響應快
3.訂單狀態查詢(Order-Status)
事務內容:對於任意一個客戶端,從固定的倉庫隨機選取一個轄區及其內用戶,讀取其最后一條訂單,顯示訂單內每件商品的狀態。
主要特點:中量級,只讀頻率低,要求響應快
4.發貨(Delivery)
事務內容:對於任意一個客戶端,隨機選取一個發貨包,更新被處理訂單的用戶余額,並把該訂單從新訂單中刪除.
主要特點:1-10 個批量,讀寫頻率低,較寬松的響應時間
5.庫存狀態查詢(Stock-Level)
事物內容:對於任意一個客戶端,從固定的倉庫和轄區隨機選取最后 20 條訂單,查看訂單中所有的貨物的庫存,計算並顯示所有庫存低於隨機生成域值的商品數量.
主要特點:重量級,只讀頻率低,較寬松的響應時間.
Ø  標准中事務處理需要滿足的條件
TPC-C 標准測試要求事務處理必須滿足下面的兩組條件.
1.  事務處理要滿足的時間及占有的比例
五種事務要滿足的時間要求,包括鍵盤操作時間(Keying Time),思考時間
因子(Think  Time Distribution)以及 90%的響應時間(90th Percentile Response Time)限制。
2.  事務要滿足的隔離級別
TPC-C 測試過程中應該滿足的隔離級別要求。要求只能高不能低。
T1到T5分別指五種事務:New-Order,Payment,Order-Status,Delivery,Stock-Level。
P0到P3分別指:臟寫,臟讀,非重復性讀,幻影
Ø  測試指標
TPC-C測試的結果主要有兩個指標,即流量指標(Throughput,簡稱tpmC)和性價比(Price/Performance,簡稱Price/tpmC)。
流量指標(Throughput,簡稱tpmC):按照TPC組織的定義,流量指標描述了系統在執行支付操作、訂單狀態查詢、發貨和庫存狀態查詢這4種交易的同時,每分鍾可以處理多少個新訂單交易。所有交易的響應時間必須滿 足TPC-C測試規范的要求,且各種交易數量所占的比例也應該滿足TPC-C測試規范的要求。在這種情況下,流量指標值越大說明系統的聯機事務處理能力越高。
性價比(Price/Performance,簡稱Price/tpmc):即測試系統的整體價格與流量指標的比值,在獲得相同的tpmC值的情況下,價格越低越好。
Ø  TPC-C的測試工具
常用的開源TPC-C基准測試工具有BenchmarkSQL, dbt2-v0.23等等。
benchmarkSQL的安裝部署
   (1).JDK1.7
   (2).apache ant
benchmarkSQL的配置文件解析:
第一個部分是JDBC連接信息。
第二個部分是場景設置,其中runTxnsPerTerminal是每分鍾執行事務數,runMins是執行多少分鍾,limitTxnsPerMin是每分鍾執行的事務總數,並且這里時間的單位是分鍾。場景執行的最低條件是第二項大於0。
第三個部分是TPCC中,五個事務執行的比例,總數等於100,通常不用修改。
典型配置:
 
Oracle配置需要修改的地方:
ü  每個倉庫要100M的空間1000個需要100G的存儲表空間。
ü  設置ORACLE 批量提交參數:
SQL> alter system set commit_write='batch,nowait';
ü  使用強制軟解析
SQL> alter system set cursor_sharing=force;
ü  使用O_DIRECT
SQL>alter system set filesystemio_options=directioscope=spfile;
SQL> alter system set disk_asynch_io=falsescope=spfile;
ü  修改最大連接數,打開游標數
SQL> alter system set processes=3000 scope=spfile;
SQL> ALTER SYSTEM SET open_cursors=900 SCOPE=BOTH;
SQL> alter system set session_cached_cursors=0scope=spfile;
ü  重啟數據庫
Ø  Benchmarksql 操作<和howTO.txt不同>:
在Oracle目標庫創建了表空間和用戶之后:
(1).runSQL.sh profile./sql.common/tableCreate.sql
(2).LoadSQL.shprofile
(3).runSQL.shprofile ./sql.common/indexCreate.sql
(4).runBenchmarkSQL.sh
1.      測試2c2g/oracle10g的測試結果
 
a.      單個倉庫
 
[oracle@rhel651 run]$ ./runBenchmark.shmy_oracle1.properties
11:36:14,827 [main] INFO   jTPCC : Term-00,
11:36:14,839 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
11:36:14,839 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
11:36:14,839 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
11:36:14,839 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
11:36:14,839 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
11:36:14,841 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
11:36:14,842 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
11:36:14,842 [main] INFO   jTPCC : Term-00,
11:36:14,842 [main] INFO   jTPCC : Term-00, db=oracle
11:36:14,842 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver
11:36:14,842 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.29:1521:iwhm
11:36:14,842 [main] INFO   jTPCC : Term-00, user=benchmarksql
11:36:14,842 [main] INFO   jTPCC : Term-00,
11:36:14,842 [main] INFO   jTPCC : Term-00, warehouses=1
11:36:14,842 [main] INFO   jTPCC : Term-00, terminals=1
11:36:14,845 [main] INFO   jTPCC : Term-00, runTxnsPerTerminal=10
11:36:14,845 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=300
11:36:14,845 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
11:36:14,845 [main] INFO   jTPCC : Term-00,
11:36:14,846 [main] INFO   jTPCC : Term-00, newOrderWeight=45
11:36:14,846 [main] INFO   jTPCC : Term-00, paymentWeight=43
11:36:14,846 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
11:36:14,846 [main] INFO   jTPCC : Term-00, deliveryWeight=4
11:36:14,846 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
11:36:14,846 [main] INFO   jTPCC : Term-00,
11:36:14,847 [main] INFO   jTPCC : Term-00,resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
11:36:14,847 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
11:36:14,847 [main] INFO   jTPCC : Term-00,
11:36:15,028 [main] INFO   jTPCC : Term-00, copiedmy_oracle1.properties to my_result_2016-09-18_113615/run.properties
11:36:15,028 [main] INFO   jTPCC : Term-00, createdmy_result_2016-09-18_113615/data/runInfo.csv for runID 2
11:36:15,028 [main] INFO   jTPCC : Term-00, writing per transactionresults to my_result_2016-09-18_113615/data/result.csv
11:36:15,029 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
11:36:15,029 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
11:36:15,029 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
11:36:15,030 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_eth0blk_sda
11:36:15,081 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):
 File "<stdin>", line 299, in <module>
 File "<stdin>", line 62, in main
 File "<stdin>", line 166, in initSystemUsage
Exception: cpu line in /proc/stat too short
11:36:15,108 [Thread-1] ERROR  OSCollector$CollectData : OSCollector,unexpected EOF while reading from external helper process
11:36:48,066 [main] INFO   jTPCC : Term-00, C value for C_LAST duringload: 247
11:36:48,066 [main] INFO   jTPCC : Term-00, C value for C_LAST thisrun:    162
11:36:48,066 [main] INFO jTPCC :Term-00,                                                                                                       Te11:36:50,354[Thread-2] INFO   jTPCC : Term-00, nttpmTOTAL: 84    Memory Usage: 8MB / 44MB           
11:36:50,355 [Thread-2] INFO   jTPCC : Term-00,
11:36:50,355 [Thread-2] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) =148.66
11:36:50,355 [Thread-2] INFO   jTPCC : Term-00, Measured tpmTOTAL = 327.05
11:36:50,355 [Thread-2] INFO   jTPCC : Term-00, Session Start  = 2016-09-18 11:36:48
11:36:50,356 [Thread-2] INFO   jTPCC : Term-00, Session End  = 2016-09-18 11:36:50
11:36:50,356 [Thread-2] INFO   jTPCC : Term-00, Transaction Count = 10
 
b.      多倉庫,10個倉庫20個terminals:
 
按照每個數據倉庫大小為80M,查看當前的表空間大小,使用10個測試。
 
TABLESPACE_NAME      TOTAL  FREE           USED        RAT
--------------- ---------- -------------------- ----------
UNDOTBS1                25    11.9375        13.0625      52.25
SYSAUX                     240         2            238     99.17
BENCHMARK         1000  890.0625        109.9375      10.99
USERS                      92.5   92.0625            .4375 .47
SYSTEM                    480    9.5625        470.4375      98.01
修改配置:10個倉庫20個terminals:
[oracle@rhel651 run]$ ./runBenchmark.shmy_oracle10.properties
16:28:05,018 [main] INFO   jTPCC : Term-00,
16:28:05,027 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:28:05,027 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
16:28:05,027 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:28:05,028 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
16:28:05,028 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
16:28:05,032 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
16:28:05,032 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:28:05,033 [main] INFO   jTPCC : Term-00,
16:28:05,033 [main] INFO   jTPCC : Term-00, db=oracle
16:28:05,033 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver
16:28:05,033 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.29:1521:iwhm
16:28:05,033 [main] INFO   jTPCC : Term-00, user=benchmarksql10
16:28:05,033 [main] INFO   jTPCC : Term-00,
16:28:05,033 [main] INFO   jTPCC : Term-00, warehouses=10
16:28:05,033 [main] INFO   jTPCC : Term-00, terminals=20
16:28:05,036 [main] INFO   jTPCC : Term-00, runTxnsPerTerminal=10
16:28:05,036 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=300
16:28:05,036 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
16:28:05,036 [main] INFO   jTPCC : Term-00,
16:28:05,036 [main] INFO   jTPCC : Term-00, newOrderWeight=45
16:28:05,036 [main] INFO   jTPCC : Term-00, paymentWeight=43
16:28:05,037 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
16:28:05,037 [main] INFO   jTPCC : Term-00, deliveryWeight=4
16:28:05,037 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
16:28:05,037 [main] INFO   jTPCC : Term-00,
16:28:05,037 [main] INFO   jTPCC : Term-00,resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
16:28:05,037 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
16:28:05,037 [main] INFO   jTPCC : Term-00,
16:28:05,206 [main] INFO   jTPCC : Term-00, copiedmy_oracle10.properties to my_result_2016-09-18_162805/run.properties
16:28:05,206 [main] INFO   jTPCC : Term-00, createdmy_result_2016-09-18_162805/data/runInfo.csv for runID 4
16:28:05,206 [main] INFO   jTPCC : Term-00, writing per transactionresults to my_result_2016-09-18_162805/data/result.csv
16:28:05,207 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
16:28:05,207 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
16:28:05,208 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
16:28:05,208 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_eth0blk_sda
16:28:05,227 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):
 File "<stdin>", line 299, in <module>
 File "<stdin>", line 62, in main
 File "<stdin>", line 166, in initSystemUsage
Exception: cpu line in /proc/stat too short
16:28:05,244 [Thread-1] ERROR  OSCollector$CollectData : OSCollector,unexpected EOF while reading from external helper process
16:28:06,313 [main] INFO   jTPCC : Term-00, C value for C_LAST duringload: 220
16:28:06,313 [main] INFO   jTPCC : Term-00, C value for C_LAST thisrun:    107
16:28:06,313 [main] INFO   jTPCC : Term-00,                                                                     Term-00,Running Average tpmTOTAL: 3016:28:47,442 [Thread-19] INFO   jTPCC : Term-00, 7MB / 80MB                                           
16:28:47,443 [Thread-19] INFO   jTPCC : Term-00,
16:28:47,443 [Thread-19] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) =142.04
16:28:47,444 [Thread-19] INFO   jTPCC : Term-00, Measured tpmTOTAL = 300.54
16:28:47,445 [Thread-19] INFO   jTPCC : Term-00, Session Start     = 2016-09-18 16:28:07
16:28:47,445 [Thread-19] INFO   jTPCC : Term-00, Session End       = 2016-09-18 16:28:47
16:28:47,445 [Thread-19] INFO   jTPCC : Term-00, Transaction Count = 200
 
c.      修改配置:10個倉庫100個terminals:
 
數據庫連接數不夠用(默認150)ORA-00018: maximum number of sessions exceeded
改成300:alter system set processes=300 scope=spfile;
 
[oracle@rhel651 run]$ ./runBenchmark.shmy_oracle10.properties
16:44:21,573 [main] INFO   jTPCC : Term-00,
16:44:21,582 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:44:21,584 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
16:44:21,584 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:44:21,584 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
16:44:21,584 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
16:44:21,586 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
16:44:21,586 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
16:44:21,586 [main] INFO   jTPCC : Term-00,
16:44:21,587 [main] INFO   jTPCC : Term-00, db=oracle
16:44:21,587 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver
16:44:21,587 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.29:1521:iwhm
16:44:21,587 [main] INFO   jTPCC : Term-00, user=benchmarksql10
16:44:21,587 [main] INFO   jTPCC : Term-00,
16:44:21,587 [main] INFO   jTPCC : Term-00, warehouses=10
16:44:21,587 [main] INFO   jTPCC : Term-00, terminals=100
16:44:21,590 [main] INFO   jTPCC : Term-00, runTxnsPerTerminal=10
16:44:21,590 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=300
16:44:21,590 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
16:44:21,590 [main] INFO   jTPCC : Term-00,
16:44:21,590 [main] INFO   jTPCC : Term-00, newOrderWeight=45
16:44:21,590 [main] INFO   jTPCC : Term-00, paymentWeight=43
16:44:21,591 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
16:44:21,591 [main] INFO   jTPCC : Term-00, deliveryWeight=4
16:44:21,591 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
16:44:21,591 [main] INFO   jTPCC : Term-00,
16:44:21,591 [main] INFO   jTPCC : Term-00,resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
16:44:21,591 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
16:44:21,591 [main] INFO   jTPCC : Term-00,
16:44:21,759 [main] INFO   jTPCC : Term-00, copiedmy_oracle10.properties to my_result_2016-09-18_164421/run.properties
16:44:21,759 [main] INFO   jTPCC : Term-00, createdmy_result_2016-09-18_164421/data/runInfo.csv for runID 6
16:44:21,760 [main] INFO   jTPCC : Term-00, writing per transactionresults to my_result_2016-09-18_164421/data/result.csv
16:44:21,761 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
16:44:21,761 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
16:44:21,761 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
16:44:21,761 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_eth0blk_sda
16:44:21,781 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):
 File "<stdin>", line 299, in <module>
 File "<stdin>", line 62, in main
 File "<stdin>", line 166, in initSystemUsage
Exception: cpu line in /proc/stat too short
16:44:21,803 [Thread-1] ERROR  OSCollector$CollectData : OSCollector,unexpected EOF while reading from external helper process
16:44:22,840 [main] INFO   jTPCC : Term-00, C value for C_LAST duringload: 220
16:44:22,840 [main] INFO   jTPCC : Term-00, C value for C_LAST thisrun:    102                                      Term-00,Running Average tpmTOTA16:47:47,105 [Thread-89] INFO   jTPCC : Term-00, ge: 112MB / 162MB                                                                                  16:47:47,106 [Thread-89] INFO  jTPCC : Term-00,                                                      
16:47:47,106 [Thread-89] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) =133.64
16:47:47,106 [Thread-89] INFO   jTPCC : Term-00, Measured tpmTOTAL = 299.94
16:47:47,106 [Thread-89] INFO   jTPCC : Term-00, Session Start     = 2016-09-18 16:44:26
16:47:47,106 [Thread-89] INFO   jTPCC : Term-00, Session End       = 2016-09-18 16:47:47
16:47:47,106 [Thread-89] INFO   jTPCC : Term-00, Transaction Count = 1000
 
d.      修改配置:50個倉庫200個terminals:
因為200個terminals 是200個鏈接,直接報出錯誤,不能執行,后改成50也不能正常運行,最終修改為20.
 
20*80M = 1600M的表空間需求 ,這里按照文檔應該是100M/warehouse
50個warehouse和50個terminal測試數據量生成:
neworder
 
45W
Order_line
 
15010354
運行一次benchmark:
neworder
 
45W +18
Order_line
 
15010626
 
使用持續時間來跑壓力:
runTxnsPerTerminal=0
//To run for specified minutes-runTxnsPerTerminal must equal zero
runMins=10##跑10分鍾
//Number of total transactions per minute
limitTxnsPerMin=0
 
09:53:07,030 [main] INFO   jTPCC : Term-00,
09:53:07,033 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
09:53:07,033 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
09:53:07,034 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
09:53:07,034 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
09:53:07,034 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
09:53:07,036 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
09:53:07,036 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
09:53:07,036 [main] INFO   jTPCC : Term-00,
09:53:07,036 [main] INFO   jTPCC : Term-00, db=oracle
09:53:07,036 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver
09:53:07,036 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.29:1521:iwhm
09:53:07,037 [main] INFO   jTPCC : Term-00, user=benchmarksql10
09:53:07,037 [main] INFO   jTPCC : Term-00,
09:53:07,037 [main] INFO   jTPCC : Term-00, warehouses=50
09:53:07,037 [main] INFO   jTPCC : Term-00, terminals=50
09:53:07,040 [main] INFO   jTPCC : Term-00, runMins=10
09:53:07,040 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=0
09:53:07,040 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
09:53:07,040 [main] INFO   jTPCC : Term-00,
09:53:07,040 [main] INFO   jTPCC : Term-00, newOrderWeight=45
09:53:07,040 [main] INFO   jTPCC : Term-00, paymentWeight=43
09:53:07,040 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
09:53:07,041 [main] INFO   jTPCC : Term-00, deliveryWeight=4
09:53:07,041 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
09:53:07,041 [main] INFO   jTPCC: Term-00,
09:53:07,041 [main] INFO   jTPCC : Term-00,resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
09:53:07,041 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
09:53:07,041 [main] INFO   jTPCC : Term-00,
09:53:07,467 [main] INFO   jTPCC : Term-00, copiedmy_oracle20.properties to my_result_2016-09-20_095307/run.properties
09:53:07,467 [main] INFO   jTPCC : Term-00, createdmy_result_2016-09-20_095307/data/runInfo.csv for runID 16
09:53:07,467 [main] INFO   jTPCC : Term-00, writing per transactionresults to my_result_2016-09-20_095307/data/result.csv
09:53:07,468 [main] INFO   jTPCC : Term-00,osCollectorScript=./misc/os_collector_linux.py
09:53:07,469 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
09:53:07,469 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
09:53:07,469 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_eth0blk_sda
09:53:07,480 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):
 File "<stdin>", line 299, in <module>
 File "<stdin>", line 62, in main
 File "<stdin>", line 166, in initSystemUsage
Exception: cpu line in /proc/stat too short
09:53:07,496 [Thread-1] ERROR  OSCollector$CollectData : OSCollector,unexpected EOF while reading from external helper process
09:53:08,959 [main] INFO   jTPCC : Term-00, C value for C_LAST duringload: 209
09:53:08,959 [main] INFO   jTPCC : Term-00, C value for C_LAST thisrun:    125
09:53:08,960 [main] INFO   jTPCC : Term-00,                                                          Term-00, Running AveragetpmTOTAL: 1.53    Current tpmTOTAL:564    Memory Usage: 53MB / 236MB                                                                                       Term-00, Running Average tpmTOTAL: 0.60    Current tpmTOTAL: 588    Memory Usage: 56MB / 236MB                      
                                                                                                                                      Term-00, Runni12:12:16,777 [Thread-33] INFO   jTPCC : Term-00, 0    Memory Usage: 58MB / 236MB                      
12:12:16,777 [Thread-33] INFO   jTPCC : Term-00,
12:12:16,777 [Thread-33] INFO   jTPCC : Term-00, Measured tpmC (NewOrders) =0.2
12:12:16,777 [Thread-33] INFO   jTPCC : Term-00, Measured tpmTOTAL = 0.55
12:12:16,778 [Thread-33] INFO   jTPCC : Term-00, Session Start     = 2016-09-20 09:53:10
12:12:16,778 [Thread-33] INFO   jTPCC : Term-00, Session End       = 2016-09-20 12:12:16
12:12:16,778 [Thread-33] INFO   jTPCC : Term-00, Transaction Count = 76
 
這個時候可以看到數據庫主機的磁盤已經被打滿。
 
還有一種情況是將鏈接數調整到了100,在造數的過程中,會出現連接被占滿的情況。
Terminal 和 warehouse的值是10:1,在代碼段里看到。
 
 
RAC環境:
[oracle@rhel651 run]$ ./runBenchmark.shmy_oracleRac.properties
09:23:44,326 [main] INFO   jTPCC : Term-00,
09:23:44,453 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
09:23:44,454 [main] INFO   jTPCC : Term-00,      BenchmarkSQL v5.0
09:23:44,454 [main] INFO   jTPCC : Term-00,+-------------------------------------------------------------+
09:23:44,454 [main] INFO   jTPCC : Term-00,  (c) 2003, Raul Barbosa
09:23:44,454 [main] INFO   jTPCC : Term-00,  (c) 2004-2016, Denis Lussier
09:23:44,456 [main] INFO   jTPCC : Term-00,  (c) 2016, Jan Wieck
09:23:44,456 [main] INFO   jTPCC : Term-00, +-------------------------------------------------------------+
09:23:44,456 [main] INFO   jTPCC : Term-00,
09:23:44,457 [main] INFO   jTPCC : Term-00, db=oracle
09:23:44,457 [main] INFO   jTPCC : Term-00,driver=oracle.jdbc.driver.OracleDriver
09:23:44,457 [main] INFO   jTPCC : Term-00,conn=jdbc:oracle:thin:@192.168.137.132:1521/iwhm
09:23:44,457 [main] INFO   jTPCC : Term-00, user=benchmarksql
09:23:44,457 [main] INFO   jTPCC : Term-00,
09:23:44,457 [main] INFO   jTPCC : Term-00, warehouses=20
09:23:44,458 [main] INFO   jTPCC: Term-00, terminals=50
09:23:44,460 [main] INFO   jTPCC : Term-00, runMins=10
09:23:44,460 [main] INFO   jTPCC : Term-00, limitTxnsPerMin=0
09:23:44,460 [main] INFO   jTPCC : Term-00, terminalWarehouseFixed=true
09:23:44,460 [main] INFO   jTPCC : Term-00,
09:23:44,460 [main] INFO   jTPCC : Term-00, newOrderWeight=45
09:23:44,460 [main] INFO   jTPCC : Term-00, paymentWeight=43
09:23:44,461 [main] INFO   jTPCC : Term-00, orderStatusWeight=4
09:23:44,461 [main] INFO   jTPCC : Term-00, deliveryWeight=4
09:23:44,461 [main] INFO   jTPCC : Term-00, stockLevelWeight=4
09:23:44,461 [main] INFO   jTPCC : Term-00,
09:23:44,461 [main] INFO   jTPCC : Term-00,resultDirectory=my_result_%tY-%tm-%td_%tH%tM%tS
09:23:44,461 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
09:23:44,461 [main] INFO   jTPCC : Term-00,
09:23:44,734 [main] INFO   jTPCC : Term-00, copiedmy_oracleRac.properties to my_result_2016-09-23_092344/run.properties
09:23:44,734 [main] INFO   jTPCC : Term-00, created my_result_2016-09-23_092344/data/runInfo.csvfor runID 17
09:23:44,735 [main] INFO   jTPCC : Term-00, writing per transactionresults to my_result_2016-09-23_092344/data/result.csv
09:23:44,736 [main] INFO   jTPCC : Term-00, osCollectorScript=./misc/os_collector_linux.py
09:23:44,736 [main] INFO   jTPCC : Term-00, osCollectorInterval=1
09:23:44,736 [main] INFO   jTPCC : Term-00, osCollectorSSHAddr=null
09:23:44,736 [main] INFO   jTPCC : Term-00, osCollectorDevices=net_eth0blk_sda
09:23:44,912 [main] INFO   jTPCC : Term-00,
Traceback (most recent call last):
 File "<stdin>", line 299, in <module>
 File "<stdin>", line 62, in main
 File "<stdin>", line 166, in initSystemUsage
Exception: cpu line in /proc/stat tooshort                                                                           Term-00,Running Average tpmTOT09:35:01,256 [Thread-28] INFO   jTPCC : Term-00, Usage: 97MB / 228MB                                                                                09:35:01,256 [Thread-28] INFO  jTPCC : Term-00,                                                                                                    09:35:01,256 [Thread-28] INFO  jTPCC : Term-00, Measured tpmC (NewOrders) = 523.68                                                                  09:35:01,257[Thread-28] INFO   jTPCC : Term-00,Measured tpmTOTAL = 1174.01                                                                        09:35:01,257 [Thread-28] INFO  jTPCC : Term-00, Session Start    = 2016-09-23 09:24:25               
09:35:01,257 [Thread-28] INFO   jTPCC : Term-00, Session End       = 2016-09-23 09:35:01
09:35:01,257 [Thread-28] INFO   jTPCC : Term-00, Transaction Count = 12439
 
在同樣性能指標的DISK環境下,RAC能達到500多,性能提高了將近5倍!!
 
測試結果:
 
TPCC值
 
用戶數
 
warehouses
148.66
 
1
 
1
142.04
 
20
 
10
133.64
 
100
 
10
0.2
 
50
 
50
Awr:
Ø  生成awr
手動執行一個快照:
Exec dbms_workload_repository.create_snapshot; (這個要背出來哦,用的時候去翻手冊,丟臉哦 J!)
創建一個AWR基線<本次測試不使用>
使用 AWR 基線進行性能比較分析
為性能度量設置什么樣的閾值是合適的?要檢測哪些內容?如果希望性能量度值表示服務器接近其容量限制的程度,則使用絕對值是正確的選擇。但如果要了解今天的性能是否與上周、上月此時的性能不同,則必須將當前性能與基線進行比較。 
Exec DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(start_snap_id,end_snap_id ,baseline_name);
 
 
@?/rdbms/admin/awrddrpt     AWR比對報告
@?/rdbms/admin/awrgrpt       RAC 全局AWR
自動生成AWR HTML報告:
http://www.oracle-base.com/dba/10g/generate_multiple_awr_reports.sql
 
 
Ø  查看awr
Selectsnap_id,dbid,BEGIN_INTERVAL_TIME,END_INTERVAL_TIME,SNAP_LEVEL fromdba_hist_snapshot order by 3;
 
495 - 497
Ø  查看報告
在執行之前查看當前的snapshot編號並記錄值,在執行完成之后記錄最后執行的編號,之后執行awr區間的報告;
參考AWR中的Instance ActivityStatistics 環節
IOPS = “physical reads total I/O requests”+ “physical writes total I/Orequests”
   MBytes/s = “physical reads total bytes” + physical writes totalbytes”
physical read total IO requests        3,272,436       455.48        34.52
physical write IO requests        314,647       43.79        3.32
IOPS = “physical reads total I/O requests” + “physical writes totalI/Orequests” =  455+43 = 498
physical read total bytes      
 3,218,786,182,144       448,007,955.58        33,956,306.25
physical write total bytes      
 72,372,139,008           10,073,143.17       763,483.62
MBytes/s= 448,007,955 + 10,073,143 = 458081098bytes= 436 MB/s
大致計算其 IOPS 為 498 而 吞吐量為 436MB/s
 
實例:
 
physical read total IO requests
 
97,973
 
59.29
 
16.24
physical write IO requests
 
261,015
 
157.89
 
43.26
IOPS = 59.29 + 157.89 = 217.27
 
physical read total bytes
 
2,356,165,632
 
1,426,327.43
 
390,546.27
physical write bytes
 
3,832,233,984
 
2,318,876.61
 
635,212.00
 
Mbytes/s = 1426327.43 + 2318876.61 = 3.6Mbytes/s

=〉terminals和 limitTxnsPerMin參數解釋
The configuration setting "terminals" is the number of database connections, BenchmarkSQL will use in parallel. Like many benchmarks of its kind, BenchmarkSQL is currently implementing an agglutenation of what is defined in the TPC-C Specs as a Terminal, with what should be a worker thread with a database connection in the SUT.
The configuration setting "limitTxnsPerMin" controls a transaction rate throttling mechanism. TPC-C defines an OLTP test, so the benchmark driver should not behave like a set of punch card readers but rather act more like (many) human beings. The rate throttling isn't exactly what TPC-C specifies, but is an OK approximation for a simple implementation. To get a driver to really behave as specified in TPC-C is difficult.
說白了,terminals參數就是並發啦。
---------------------
作者:大慧說
來源:CSDN
原文:https://blog.csdn.net/nirvana52/article/details/52668591
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM