Oracle DB 壓力測試相關效能指標及達到指標的方法

tolywang發表於2013-09-03
伺服器的幾個效能測試指標(單機或RAC, RAC的某些值需要加總或求平均):

DB伺服器CPU利用率 
        ---  可從NMON ,  AWR 或 獲取,如果是RAC,  可能需要求平均值。  

IOPS                            
         ---  NMON獲取的IOPS更精確  (相對AWR或SQL)  ,類似Physical Read Total IO Requests,資料庫的一次I/O和作業系統的一次I/O 不同。

IO頻寬
      ---- NMON中 DISK_SUMM 的sheet上 Disk Total KB/s 上有呈現。

每秒產生的Redo大小(Redo size Per Second)
          ----  涉及到資料庫redo ,  從AWR或SQL獲取 

每秒Transactions數(Transactions Per Second 或 Txns/s) 
          ----  涉及到資料庫transactions ,  從AWR或SQL獲取 

IO Response Time  
          ----  涉及到資料庫IO響應,  從AWR或SQL獲取    (查詢等待事件中Timed Events:   db file sequential read , 檢視Wait Time下的 Avg(ms) 可得到 )    

如果是RAC ,   AWR報告需要是全域性的, 執行  awrgrpt.sql  。

------------------------------------------

壓力如何調整: 

1.     如果需要增加IOPS 而不增加IO頻寬(吞吐量), 可以適當減少全表掃描的查詢,增加透過rowid 進行索引掃描的查詢 , 比如可以透過 dba_segments 查詢出size較大的幾個表,透過強制使用index 進行rowid 訪問來增加IOPS .
例如:  select   /*+INDEX(a  )*/    count(1)   from   gl.gl_je_lines  a   where   description  is  not  null  ;   
 條件中選擇最不可能建立index的列 (查一下是否使用到index也可以) , 或者說長度最長的那個欄位, 比如這裡的 description ,  列上最好有值 。  這樣透過 where 後的條件欄位不能直接在 index 中取值,而需要透過rowid 在table中取值, 那麼相對block 更加分散, IOPS 會增加較快, 而IO頻寬相對增加不多。 

2.   如果需要增加IO 頻寬 , 那麼全表掃描是一個選擇 。

3.   如果需要增加redo size /S  的大小,  自然是增加單位時間內的 DML 。


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

相關文章