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參數就是併發啦。
相關文章
相關標籤/搜索