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


分享到:


相關文章: