oracle壓力測試之orastress!

space6212發表於2019-07-20
orastress主要測試資料庫的壓力。它可以測試資料庫的CPU或者記憶體的壓力(以只讀方式),也可以使用包括普通INSERT和直接路徑INSERT兩種方式測試資料庫的I/O能力。
orastress只能執行在windows下,但它也可以測試遠端伺服器的壓力。

1、下載
下載地址是

2、安裝
orastress!使用的使用者和資料和orabm類似,它的安裝方法和orabm也類似。

1) 擴充表空間
orastress!使用orabm使用者作為測試使用者,orabm使用者預設使用tools表空間作為預設表空間,在本測試中要匯入10個Warehouses的資料,資料庫大概在1G左右,所以,要保證orabm所用的表空間大於1G
SQL> alter database datafile 'E:ORACLEORADATAORACLE9ITOOLS01.DBF' resize 1500m;
2) 刪除orabm使用者
如果你的資料庫沒有orabm使用者,則跳過這步
DROP USER ORABM CASCADE;
3) 建立使用者
sqlplus system/pwd @orabm_user
遠端資料庫使用:
sqlplus
@orabm_user
4) 建立表
sqlplus system/pwd @orabm_tab
遠端資料庫使用:
sqlplus
@orabm_tab
5) 裝載資料
orabmload Warehouses 10
這裡裝載10個warehouses的資料進行測試。資料量大概在1G左右,執行時間估計在15分鐘左右。
如果是遠端資料庫,則先
set LOCAL=tnsname
然後再執行orabmload
6) 建立索引
sqlplus system/pwd @orabm_ind
遠端資料庫使用:
sqlplus
@orabm_ind
7) 分析表和索引
sqlplus system/pwd @orabm_analyze
遠端資料庫使用:
sqlplus
@orabm_analyze
8) 授權
連線到目標伺服器,以sys執行
GRANT EXECUTE ON DBMS_LOCK TO ORABM
9) 建立壓力測試插入記錄所用的表
sqlplus orabm/orabm @orastress_tab.sql
遠端資料庫使用:
sqlplus
@orastress_tab.sql
10) 建立orastress!用到的包和儲存過程
建立包:
sqlplus orabm/orabm @orastress.plh
建立包體:
sqlplus orabm/orabm @orastress.plb
遠端資料庫使用:
sqlplus
@orastress.plh
sqlplus
@orastress.plb
11) 申請註冊碼
經過以上步驟,在oracle的測試環境基本搭建完成,可以使用orastress!開始測試了。但orastress!是共享軟體,沒有註冊只能使用1個併發測試資料庫,我們可以申請一個有效期為20天的、功能無限制的試用註冊碼。
申請註冊碼的步驟是:
首先執行
D:programeroracle tools壓力orastress>"orastress!.exe"
Serial: 1274-0B71
Licensed to: DEFAULT
Evaluation version: 1 session only per database
得到的1274-0B71就是序列號(不同的機器有不同的序列號)
然後登入

輸入相關資訊,郵件地址一定要正確填寫,並在最後一個輸入框中輸入序列號,提交後如果稽核透過的話能拿到一個註冊碼

拿到註冊碼後執行
D:programeroracle tools壓力orastress>"orastress!.exe" register
在彈出的對話方塊中填入註冊資訊即可。

很可惜,到目前位置我還沒有能拿到key。

3、使用
orastress!可以執行在4種模式下:
READ :只讀,測試CPU和記憶體。如果只測試單個例項,效果和orabm一樣
OLTP :模擬線上事務交易系統測試
INS :測試普通insert的I/O壓力
DIO :測試直接路徑insert的I/O壓力

orastress!的使用方式是:
orastress! –s sess-iterations-list –t transacts-per-sess –c tns-alias-list –m mode [ -s batchsize]
其中:
sess-iterations-list:併發的個數。如果要測試多種數量的併發數,則多種數量之間用都好分割
transacts-per-sess:每個併發執行的事務數
tns-alias-list:被測試的例項列表。如果要測試多個例項,則各個例項用逗號分割。
mode:執行模式。參看上文。
batchsize:可選。在IDS和DIO模式下用到。預設值是1000。在IDS和DIO模式下,插入的記錄數達到batchsize就會提交一次。


建議對單節點資料庫分別採用1,2,3,5,10個Warehouses進行1,2,4,6,10個併發的50000個事務的測試.
對於多節點RAC建議採用1,2,3,5,10個Warehouses進行1,3,4,7,10個併發的50000個事務的測試.


下面的一些執行舉例

Example 1:

orastress! –s 1 –t 50000 –c inst1.world –m oltp

Run one iteration - comprising 50000 transactions in 1 session - against inst1.world.
進行一組測試,透過一個session,包含50000個事務,對inst1.world資料庫進行測試.

Example 2:

orastress! –s 2 –t 50000 –c inst1.world,inst2.world –m oltp

執行一組測試,對兩個資料庫(inst1.world,inst2.world)各發出兩個併發session,每個session執行50000個事務,這兩個資料庫可以是:
. 同一個rac的兩個例項
. 同一個伺服器上不同的例項(非rac)
. 不同伺服器上的不同例項(非rac)

Example 3:

orastress! –s 1,2,4 –t 50000 –c inst1,inst2,inst3,inst4 –m read
執行3組測試,分別以1,2,4個併發session對四個例項,各執行50000個事務:

Orastress!的輸出結果和orabm類似。

D:programeroracle tools壓力orastress>"orastress!.exe" -s 1 -t 100 -c oracle9
i -m oltp
Evaluation version: 1 session only per database
---begin mode=oltp sess=1 txn=100 TNS=oracle9i Thu Sep 21 17:59:06 2006
oracle9i#1 w=9 txn(all)=100 xn(sam)=79 t(sam)=12 tps=6.6 d=2(2.5%) n=34(43%) o=8
(10.1%) p=33(41.8%) s=2(2.5%) end=210906-17:59:22
---end - Thu Sep 21 17:59:22 2006

D:programeroracle tools壓力orastress>"orastress!.exe" -s 1 -t 1000 -c oracle
9i -m oltp
Evaluation version: 1 session only per database
---begin mode=oltp sess=1 txn=1000 TNS=oracle9i Fri Sep 22 10:07:49 2006
oracle9i#1 w=2 txn(all)=1000 xn(sam)=799 t(sam)=65 tps=12.3 d=40(5%) n=304(38%)
o=39(4.9%) p=385(48.2%) s=31(3.9%) end=220906-10:09:27
---end - Fri Sep 22 10:09:27 2006


這個測試比較緩慢,大家在測試的時候要給點耐性。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/231499/viewspace-63732/,如需轉載,請註明出處,否則將追究法律責任。

相關文章