LoadRunner 中配置監控Oracle

Oracle 是目前世界上大型應用系統廣泛使用的數據庫,Oracle 數據庫產品為財富排行榜上的前1000 家公司所採用,許多大型網站也選用了Oracle 系統。Oracle 內部結構比較複雜,如圖8.1 所示,出現性能問題的可能性是比較大的。因此在性能測試過程中,應該密切關注Oracle的性能表現,收集和監控Oracle 性能數據。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

要通過LoadRunner 監控Oracle,首先必須在Controller 所在的機器上安裝Oracle 客戶端,然後配置好服務名,用sqlplus 確認可以連接Oracle,之後就可以在Controller 中配置Oracle 連接,配置的方法如下。

(1)打開Controller,選擇監控圖中的“Database Server Resource Graphs - Oracle”,如圖8.2 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

(2)添加監控,監控引擎選擇“LoadRunner native monitors”單選按鈕,如圖8.3 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

(3)然後添加需要監控的Oracle 所在的服務器IP 地址,如圖8.4 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

(4)輸入Oracle 服務器的登錄賬號,如圖8.5 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

(5)選擇需要監控的Oracle 計數器,如圖8.6 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

添加完監控IP 後如圖8.7 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

確定之後即可在Controller 的監控圖表中看到收集的Oracle 性能數據,如圖8.8 所示。

Oracle數據庫性能監控|LoadRunner 中配置監控Oracle

(6)修改Oracle 監控數據的收集頻率。

LoadRunner 默認間隔10 秒收集一個Oracle 性能數據,數據取樣的間隔太短會對Oracle 數據庫性能造成一定的影響,如果想調整收集頻率,可打開LoadRunner 安裝目錄中的dat\monitors\vmon.cfg 文件,修改其中的sample rate。

需要注意的是LoadRunner 限制監控Oracle 收集性能數據的最小間隔是10 秒,如果設置低於這個值,會按10 秒間隔來收集。

(7)添加自定義計數器。

LoadRunner 在vmon.cfg 文件中設置了可收集的Oracle 性能計數器,如果希望自己定義收集的性能數據,可修改此文件,添加相應的SQL 語句來定義計數器。

例如,可在LoadRunner 安裝路徑的\dat\monitors 找到vmon.cfg 文件並修改如下:

[V$ Monitor]

Counters=150

CustomCounters=9

;How many seconds for each data sample?

SamplingRate=10

[Custom0]

;Name must be unique

Name=庫快存命中率

Description=該計數器返回當前庫快存命中率

Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache

IsRate=0

[Custom1]

;Name must be unique

Name=高速緩存區命中率

Description=oracle database shoot straight

Query=SELECT round(1-SUM(PHYSICAL_READS)/(SUM(DB_BLOCK_GETS) +

SUM(CONSISTENT_GETS)), 4) * 100 FROM (SELECT CASE WHEN NAME='physical reads' THEN

VALUE END PHYSICAL_READS,CASE WHEN NAME = 'db block gets' THEN VALUE END

DB_BLOCK_GETS,CASE WHEN NAME = 'consistent gets' THEN VALUE END CONSISTENT_GETS

FROM V$SYSSTAT WHERE Name IN ('physical reads','db block gets','consistent

gets'))

IsRate=0

[Custom2]

;Name must be unique

Name=共享區庫緩存區命中率

Description=命中率應大於0.99

Query=Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache

IsRate=0

[Custom3]

;Name must be unique

Name=共享區字典緩存區命中率

Description=命中率應大於0.85

Query=Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from

v$rowcache

IsRate=0

[Custom4]

;Name must be unique

Name=檢測回滾段的爭用

Description=應該小於1%

Query=select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat

IsRate=0

[Custom5]

;Name must be unique

Name=檢測回滾段收縮次數

Description=應該小於1%

Query=select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn

= v$rollname.usn

IsRate=0

[Custom6]

;Name must be unique

Name=監控表空間的I/O 讀總數

Description=監控表空間的I/O

Query=select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where

f.file# = df.file_id

IsRate=0

[Custom7]

;Name must be unique

Name=監控表空間的I/O 塊讀總數

Description=監控表空間的I/O

Query=select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where

f.file# = df.file_id

IsRate=0

[Custom8]

;Name must be unique

Name=監控表空間的I/O 寫總數

Description=監控表空間的I/O

Query=select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where

f.file# = df.file_id

IsRate=0


分享到:


相關文章: