51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

测试开发精英班,通向高级软件测试工程师【活动】看什么你说了算,UP主福利来啦!项目为王,自动化测试提升加速器 !横扫BAT,Python全栈测试开发技能大全
【114期】:谈数据库测试&测试开发相互间的关系!参与调查问卷 缔造行业趋势 月薪15K+的测试开发必备技能? 【活动】为视频UP主打CALL,互动领福利!
查看: 14965|回复: 36

[求助] LR中监控ORACLE数据库常用计数器(如何自定义Oracle计数器)

[复制链接]

该用户从未签到

发表于 2007-2-10 16:45:05 | 显示全部楼层 |阅读模式
一、添加自定义计数器的方法

      要创建自定义查询,请执行以下操作:
1.        在安装路径的Mercury LoadRunner\dat\monitors找到vmon.cfg文件,打开。
2.        在vmon.cfg文件的第三行中,CustomCounters=指出要创建的自定义计数器个数。
3.        在vmon.cfg文件中为新计数器新建一节,每节都有以下格式:
     [Custom0]
     Name=Five Hundred
Description=This counter always returns 500.
Query=SELECT 500 FROM DUAL
IsRate=0
4.        在[Custom#]行,将计数器顺序中的下一个数字分配给新的自定义计数器。
注意:自定义计数器必须是以数字0开始的联系顺序。
5.        在Name行,输入新计数器的名称(可以输入中文)。
6.        在Description行,输入对该计数器的描述或解释(可以输入中文)。
7.        在Query行,输入恰好返回数据库一行的SQL查询的文本,该行必须包含一列数值。
注意:自定义查询文本不能够超过512字符。
8.        在IsRate行,如果希望数据库将计数器报告为一个绝对值,请输入0;如果希望数
据库报告每单位时间计数器的更改,请输入1。
注意:自定义查询无法返回负值。
  
例:
[Custom0]
;Name must be unique
Name=库快存命中率
Description=该计数器返回当前库快存命中率
Query=SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache
IsRate=0


3        配置文件示例对象
安装路径的Mercury LoadRunner\dat\monitors找到vmon.cfg文件:

V$ Monitor]
Counters=150
CustomCounters=12
;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
.
.
.
.
.
(以上为12个自定义的计数器,以下为LR工具自带的计数器)

[0]
Name=CPU used by this session
Description=This is the amount of CPU time (in 10s of milliseconds) used by a session between when a user call started and ended. Some user calls can complete within 10 milliseconds and as a result, the start and end user-call time can be the same. In this case, 0 milliseconds are added to the statistic. A similar problem can exist in the reporting by the operating system, especially on systems that suffer from many context switches.
IsRate=0

[1]
Name=CPU used when call started
Description=The CPU time used when the call is started.
IsRate=0
.
.
.
.


二、常用自定义计数器列表

序号        监控名称        SQL算法        说明
1、   数据高速缓存区命中率        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'))        (监控 SGA 的命中率)命中率应大于0.90最好

2、   库快存命中率        SELECT 100*((sum(pins-reloads))/sum(pins)) from v$librarycache        该计数器返回当前库快存命中率

3 、  共享区库缓存区命中率        Select round(sum(pins-reloads)/sum(pins) * 100, 2) from v$librarycache        (监控 SGA 中共享缓存区的命中率)命中率应大于0.99

4、   监控 SGA 中字典缓冲区的命中率        Select round(sum(gets-getmisses-usage-fixed)/sum(gets) * 100, 2) from v$rowcache        (共享区字典缓存区命中率)命中率应大于0.85

5、   检测回滚段的争用        select round(sum(waits)/sum(gets) * 100, 2) from v$rollstat        小于1%

6、   检测回滚段收缩次数        select sum(shrinks) from v$rollstat, v$rollname where v$rollstat.usn = v$rollname.usn       

7、   监控表空间的 I/O读总数        select sum(f.phyrds) pyr from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

8、    监控表空间的 I/O块读总数        select sum(f.phyblkrd) pbr from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

9、    监控表空间的 I/O写总数        select sum(f.phywrts) pyw from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

10、  监控表空间的 I/O块写总数        select sum(f.phyblkwrt) pbw  from v$filestat f, dba_data_files df where f.file# = df.file_id        监控表空间的 I/O

11、   监控 SGA 中重做日志缓存区的命中率        SELECT Decode(immediate_gets+immediate_misses,0,0,immediate_misses/(immediate_gets+immediate_misses)*100) ratio2 FROM v$latch WHERE name IN ('redo copy')        应该小于1%

12、   监控内存和硬盘的排序比率        select round(sum(case when name='sorts (disk)' then value else 0 end) / sum(case when name='sorts (memory)' then value else 0 end)*100,2) from (SELECT  name, value FROM v$sysstatWHERE name IN ('sorts (memory)', 'sorts (disk)'))        最好使它小于 10%
回复

使用道具 举报

该用户从未签到

 楼主| 发表于 2007-2-10 16:47:30 | 显示全部楼层
这段时间非常忙,都没有时间来论坛上逛逛,也好久没有发贴回复了,希望本贴对所有喜欢LR工具的朋友有一定的帮助,更希望大家能够把这关于oracle计数器的资料补全
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-2-12 09:49:48 | 显示全部楼层
这个好,呵呵,我也是这么添加oracle的计数器的, 关于oracle的计数器默认的实在可用性不大,需要自定义,LZ总结的满好的,顶。
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-2-12 11:37:49 | 显示全部楼层
太好了,我正需要这个,谢谢LZ
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-3-30 18:45:09 | 显示全部楼层
我公司也用Oracle, 可我们测试员没有权利用Oracle sdlkfj9
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-4-12 11:07:55 | 显示全部楼层
关注中....
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-4-12 13:09:14 | 显示全部楼层
感谢版主的分享。

也欢迎归队  sdlkfj5

[ 本帖最后由 rickyzhu 于 2007-4-12 13:10 编辑 ]
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-6-4 20:02:04 | 显示全部楼层

感谢版主分享,正缺这个呢

感谢版主分享,正缺这个呢
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-6-16 16:01:11 | 显示全部楼层
谢谢楼主分享
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-6-16 22:36:01 | 显示全部楼层
不错,支持!
回复 支持 反对

使用道具 举报

该用户从未签到

发表于 2007-6-18 15:13:15 | 显示全部楼层
学习中~~
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2017-1-18 14:45
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2007-6-18 15:18:00 | 显示全部楼层
    丁页
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-7-24 20:13:42 | 显示全部楼层
    我今天参照了您写的步骤进行了添加,但是我在CONTROLLER里添加ORACLE,但是自定义的性能计数器为何无法找到,请问这是什么原因,如果是自定义,我该选择哪个选项进行添加????谢谢!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-8-3 16:33:47 | 显示全部楼层
    谢谢
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-2-1 16:33
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    发表于 2007-8-17 13:33:38 | 显示全部楼层
    好东西~~支持原创!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-8-17 19:13:50 | 显示全部楼层
    论坛里多几个这样的人就好了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2007-8-19 11:47:19 | 显示全部楼层
    好东西
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2009-5-25 11:34:39 | 显示全部楼层
    ,支持楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2009-5-25 11:48:54 | 显示全部楼层
    顶楼主
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2009-6-8 14:35:17 | 显示全部楼层
    原帖由 guanlei 于 2007-7-24 20:13 发表
    我今天参照了您写的步骤进行了添加,但是我在CONTROLLER里添加ORACLE,但是自定义的性能计数器为何无法找到,请问这是什么原因,如果是自定义,我该选择哪个选项进行添加????谢谢!

    我也是如法炮制,但是看不到自定义的计数器在哪啊?求助!谢谢!!!
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /2 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2020-9-23 06:57 , Processed in 0.077194 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2020 Comsenz Inc.

    快速回复 返回顶部 返回列表