Oracle性能測試以及各個參數(shù)配置
以下是有關(guān)開發(fā)人員常用的用戶壓力模擬Oracle性能測試的經(jīng)驗:
1)壓力測試過程中發(fā)現(xiàn)一些SQL腳本執(zhí)行非常慢,進行了優(yōu)化.
2)最好并發(fā)測試,否則服務(wù)基本上沒有什么壓力.
3)先從100用戶開始,再慢慢向上加,直到CPU的承載達到90%以上.查看系統(tǒng)的性能情況,包括TPS,響應(yīng)時間,和內(nèi)存等.
還包括Oracle服務(wù)器的I/O流量和交易數(shù)。這個方案是參考了淘寶的機房性能測試方案,下面是性能測試的具體步驟:
Oracle性能測試主要是模擬大量的sql語句操作,來對數(shù)據(jù)庫服務(wù)器進行加壓。在測試前,需要準備以下要模擬的sql語句,測試腳本,并將測試控制機、測試加壓機、被測數(shù)據(jù)庫服務(wù)器準備妥當。
腳本協(xié)議選擇oracle(2-Tier),將所有要模擬的sql語句放在一個sql文件內(nèi),使用sql-plus來操作數(shù)據(jù)庫載入,使用 loadrunner來錄制。錄制好之后就是修改腳本了,首先在vdf.h文件中定義變量(static void FAR * OraBind1;),定義參數(shù)(
  static LRD_VAR_DESC UID =
  {LRD_VAR_DESC_EYECAT, 1, 10, LRD_DBTYPE_ORACLE, {1, 1, 0},
  DT_SF_STRIPPED_SPACES};)。
為什么要在這里定義而不直接只用參數(shù)化呢?因為那樣會對加壓機造成很大的壓力,不利于測試。這里需要根據(jù)你的腳本來變化,你在腳本中使用了多少變量,多少參數(shù),那么你就在要這里定義多少。接下來修改腳本的,將一次性的登陸登出放在init和end中,使用lrd_assign和 lrd_ora8_bind_placeholder命令替代參數(shù),如
  lrd_ora8_stmt(OraStm6, "SELECT COUNT(*) as counter FROM ***** WHERE ***_id="
  ":U and ( status = 0 or "
  "status is null)", 1, 0, 0);
  lrd_assign(&UID , "{UID}", "", 0, 0);
  lrd_ora8_bind_placeholder(OraStm6, &OraBind1, "U", &UID , 0, 0, 0);
這樣,腳本就差不多大功告成了。編譯一下,沒有問題就通過了^o^
將以上Oracle性能測試的腳本放在控制機上,就可以開始加壓了,注意的是,被測數(shù)據(jù)庫服務(wù)器的各個參數(shù)配置要記錄下來,以便修改參數(shù)調(diào)優(yōu)時能分析清晰。記錄下數(shù)據(jù)庫的iops,time,tps和響應(yīng)時間,結(jié)果匯總出報告。
【編輯推薦】















 
 
 







 
 
 
 