【新炬網路名師大講堂】DATABASE REPLAY加壓播放引數之SCALE_UP_MULTIPLIER
當我們要遷移到新的環境之前,我們都想測試下我們新的環境是否能負荷生產的負載。同時,對於一些特殊的應用場景,我們還需要考慮模擬更大的併發量來測試是否能頂住未來的壓力。舉個簡單的例子,我搞個電子商務的網站,我現在每秒能支援1000個人同時線上做查詢,購買等等操作。那麼未來我們的網站影響力得到了擴大,可能有更多的人進行訪問,比如1萬人、10萬人,這個壓力下我的資料庫伺服器能頂住嗎?在這裡不得不吐槽一下我們的某(tie)車(dao)票(bu)的網站,真是爛的要死,一到過年的時候,就卡個不行。他們真應該多做做這種加壓測試。上一篇我們主要介紹了Database Replay基本使用,我們捕獲了現有的壓力,然後拿到新的環境上去播放,基本上是1比1的。這一篇我們要進行一個加壓的播放,這主要取決於我們的引數SCALE_UP_MULTIPLIER。這個引數可以幫助我們把只讀的操作按照比例進行擴大。對於DML、DDL,或者是修改資料庫的PL/SQL程式碼以及SELECT FOR UPDATE都將被忽略掉。這個也比較容易理解,畢竟修改操作是獨佔不能共享的。
上一篇我們捕獲的一個環境的資料如下,這裡可以看到USER_CALLS為56次,那麼我們加速10倍播放,一定會達到5600次。我們來實驗一下。
SQL> select name, directory, status, start_time, end_time, USER_CALLS,TRANSACTIONS from dba_workload_captures; NAME DIRECTORY STATUS START_TIM END_TIME USER_CALLS TRANSACTIONS -------------------- --------------- --------------- --------- --------- ---------- ------------ test_capture_1 DATA_PUMP_DIR COMPLETED 20-APR-14 20-APR-14
56
10
1.預處理資料
SQL> exec dbms_workload_replay.process_capture('DATA_PUMP_DIR'); PL/SQL procedure successfully completed
2.執行重放
SQL> exec dbms_workload_replay.initialize_replay (replay_name => 'test_replay_1', replay_dir => 'DATA_PUMP_DIR'); PL/SQL procedure successfully completed. SQL> select id,name,PARALLEL,CAPTURE_ID,STATUS,USER_CALLS from DBA_WORKLOAD_REPLAYS; ID NAME PAR CAPTURE_ID STATUS USER_CALLS ---------- ------------------------------ --- ---------- ---------------------------------------- ---------- 61 test_replay_1 NO 65 INITIALIZED SQL> exec DBMS_WORKLOAD_REPLAY.prepare_replay (synchronization => TRUE,SCALE_UP_MULTIPLIER=>100); PL/SQL procedure successfully completed.
新開一個終端,在終端上的datadump目錄下執行:
[oracle@11g dpdump]$ wrc system/oracle mode=replay replaydir=/oracle/app/oracle/admin/ora11/dpdump Workload Replay Client: Release 11.2.0.4.0 - Production on Mon Apr 21 20:57:38 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Wait for the replay to start (20:57:38)
切換回剛才的SQLPLUS視窗,開始執行Replay操作。
SQL> exec DBMS_WORKLOAD_REPLAY.START_REPLAY(); PL/SQL procedure successfully completed.
再看終端視窗的顯示。
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options [oracle@11g dpdump]$ wrc system/oracle mode=replay replaydir=/oracle/app/oracle/admin/ora11/dpdump Workload Replay Client: Release 11.2.0.4.0 - Production on Mon Apr 21 20:57:38 2014 Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved. Wait for the replay to start (20:57:38) Replay started (20:57:44) Replay finished (20:58:58)
完成後切換回SQLPLUS下執行查詢。可以看到USER_CALLS是之前的10倍。
SQL> select id,name,PARALLEL,CAPTURE_ID,STATUS,USER_CALLS from DBA_WORKLOAD_REPLAYS;
ID NAME PAR CAPTURE_ID STATUS USER_CALLS
---------- ------------------------------ --- ---------- ---------------------------------------- ----------
61 test_replay_1 NO 65 COMPLETED 5600
再看看我們的事務,沒有變化,發現還是10次。
SQL> connect test/test Connected. SQL> select count(1) from tt; COUNT(1) ---------- 10
透過這個引數,我們可以模擬更高的查詢併發,預測生成環境未來的負載能力。同時,我們還可以生成更多的報告來進行對比。如果發現某些語句查詢在1000個人下面正常,在1萬、10萬下就變得緩慢,那就需要去整改。比如邏輯讀高的,一點點會話看不出什麼問題的。一大堆會話就容易出現latch:cache buffer chains的等待。這能指導我們進行SQL調整。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29960155/viewspace-1371326/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- DATABASE REPLAY加壓播放引數之SCALE_UP_MULTIPLIERDatabase
- 【新炬網路名師大講堂】AIX上的配置網路調優引數AI
- 【新炬網路名師大講堂】Oracle Database 12c 新特性總結OracleDatabase
- 【新炬網路名師大講堂】SOA套件介紹套件
- 【新炬網路名師大講堂】weblogic整合ejbWeb
- 【新炬網路名師大講堂】總結和結論
- 【新炬網路名師大講堂】oracle application server之核心技術opmnOracleAPPServer
- 【新炬網路名師大講堂】svn在linux下的使用Linux
- 【新炬網路名師大講堂】關於LOG FILE SYNC的解惑
- 【新炬網路名師大講堂】Data Guard–物理主備庫切換
- 【新炬網路名師大講堂】TUXEDO的配置最佳化之路一UX
- 【新炬網路名師大講堂】TUXEDO的配置最佳化之路二UX
- 【新炬網路名師大講堂】初識mysql的體系結構MySql
- 【新炬網路名師大講堂】cursor: pin S wait on X模擬AI
- 【新炬網路名師大講堂】Oracle中的回收站(Recycle Bin)Oracle
- 【新炬網路名師大講堂】clone oracle 12c pluggable databasesOracleDatabase
- 【新炬網路名師大講堂】關於IMSI/MSISDN/IMEI的介紹
- 【新炬網路名師大講堂】12c新特性:備份CDBs和PDBs
- 【新炬網路名師大講堂】12c新特性:使用RMAN連線CDB
- 【新炬網路名師大講堂】Oracle 11g rac 刪除節點Oracle
- 【新炬網路名師大講堂】j2ee與weblogic簡介Web
- 【新炬網路名師大講堂】GoldenGate的ADD SCHEMATRANDATA命令研究Go
- 【新炬網路名師大講堂】RAC環境下SYSDATE返回錯誤時間
- 【新炬網路名師大講堂】不同資料庫取前幾條記錄資料庫
- 【新炬網路名師大講堂】MySQL複製與監控系列文章(1)——篇首MySql
- 【新炬網路名師大講堂】關於Oracle 12c Flex ASM特性的理解OracleFlexASM
- 【新炬網路名師大講堂】Oracle小知識- Oracle KILLED會話的釋放Oracle會話
- 【新炬網路名師大講堂】WAS控制檯資料來源資訊無故丟失
- 【新炬網路名師大講堂】有限條件下怎樣做好恢復演練
- 【新炬網路名師大講堂】理解TimesTen錯誤日誌資訊”waiting for latch”AI
- 【新炬網路名師大講堂】CBO中”與NULL在cardinality計算上的差別Null
- 【新炬網路名師大講堂】12c高可用新特性what-if command evaluation介紹
- 【新炬網路名師大講堂】解決CBO對TABLE函式基數估算導致的效能問題函式
- 【新炬網路名師大講堂】TimesTen記憶體碎片(高水位)回收步驟詳解記憶體
- 【新炬網路名師大講堂】軟體測試中常見問題與解決辦法
- 【新炬網路大師講堂】CMMI/敏捷方法入門敏捷
- 【新炬網路名師大講堂】記一次打PSU遇到的Copy failed的問題AI
- 【新炬網路名師大講堂】讓業務飛起來,應用效能端到端最佳化