LR监控tomcat服务器
采用编写VuGen脚本访问Tomcat的Status页面的方式获取性能数据(利用了关联和lr_user_data_point函数),本质上还是使用tomcat自带的监控页面,只是将监控结果加到LR的analysis中。具体步骤如下:
1)首先确保Tomcat中创建了必要权限的用户(编辑Tomcat的\conf目录下的tomcat-users.xml文件),然后在LoadRunner中编写脚本(根据不同版本的tomcat监控结果中的监控数据项会有些差别,根据情况更改脚本):
double atof (const char *string);
extern char* strtok(char *token, const char *delimiter); CollectMetrics()
{
int countP, countS, countF, countR, countK;
int numValues;
static int loggedVersionInfo = FALSE; lr_save_string("127.0.0.1:8080", "ServerName");
web_set_max_html_param_len(""); web_set_user("admin",
"admin",
"{ServerName}"); lr_start_transaction("monitor tomcat"); web_reg_save_param("JVMFreeMemory",
"LB=Free memory: ",
"RB= MB",
"Ord=1",
LAST); web_reg_save_param("JVMTotalMemory",
"LB=Total memory: ",
"RB= MB",
"Ord=1",
LAST); web_reg_save_param("JVMMaxMemory",
"LB=Max memory: ",
"RB= MB",
"Ord=1",
LAST); web_reg_save_param("HTTPMaxThreads",
"LB=Max threads: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPMinSpareThreads",
"LB=Min spare threads: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPMaxSpareThreads",
"LB=Max spare threads: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPCurrentSpareThreads",
"LB=Current thread count: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPCurrentThreadBusy",
"LB=Current thread busy: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPMaxProcessingTime",
"LB=Max processing time: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPRequestCount",
"LB=Request count: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPErrorCount",
"LB=Error count: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPBytesReceived",
"LB=Bytes received: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("HTTPBytesSent",
"LB=Bytes sent: ",
"RB= ",
"Ord=1",
LAST); web_reg_save_param("JKMaxThreads",
"LB=Max threads: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKMinSpareThreads",
"LB=Min spare threads: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKMaxSpareThreads",
"LB=Max spare threads: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKCurrentSpareThreads",
"LB=Current thread count: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKCurrentThreadBusy",
"LB=Current thread busy: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKMaxProcessingTime",
"LB=Max processing time: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKRequestCount",
"LB=Request count: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKErrorCount",
"LB=Error count: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKBytesReceived",
"LB=Bytes received: ",
"RB= ",
"Ord=2",
LAST); web_reg_save_param("JKBytesSent",
"LB=Bytes sent: ",
"RB= ",
"Ord=2",
LAST); web_reg_find("Text=/manager",
LAST); web_url("status",
"URL=http://{ServerName}/manager/status",
"Resource=0",
"RecContentType=text/html",
"Referer=",
"Snapshot=t1.inf",
"Mode=HTTP",
LAST); lr_end_transaction("monitor tomcat", LR_AUTO); // 写入Tomcat JVM 度量数据
lr_user_data_point("Tomcat JVM Free memory", atof(lr_eval_string("{JVMFreeMemory}")));
lr_user_data_point("Tomcat JVM Total memory", atof(lr_eval_string("{JVMTotalMemory}")));
lr_user_data_point("Tomcat JVM Max memory", atof(lr_eval_string("{JVMMaxMemory}"))); // 写入Tomcat web server 度量数据
lr_user_data_point("Tomcat HTTP Max threads", atof(lr_eval_string("{HTTPMaxThreads}")));
lr_user_data_point("Tomcat HTTP Min spare threads", atof(lr_eval_string("{HTTPMinSpareThreads}")));
lr_user_data_point("Tomcat HTTP Max spare threads", atof(lr_eval_string("{HTTPMaxSpareThreads}")));
lr_user_data_point("Tomcat HTTP Current spare threads", atof(lr_eval_string("{HTTPCurrentSpareThreads}")));
lr_user_data_point("Tomcat HTTP Current thread busy", atof(lr_eval_string("{HTTPCurrentThreadBusy}")));
lr_user_data_point("Tomcat HTTP Max processing time", atof(lr_eval_string("{HTTPMaxProcessingTime}")));
lr_user_data_point("Tomcat HTTP Request count", atof(lr_eval_string("{HTTPRequestCount}")));
lr_user_data_point("Tomcat HTTP Error count", atof(lr_eval_string("{HTTPErrorCount}")));
lr_user_data_point("Tomcat HTTP Bytes received", atof(lr_eval_string("{HTTPBytesReceived}")));
lr_user_data_point("Tomcat HTTP Bytes sent", atof(lr_eval_string("{HTTPBytesSent}"))); // 写入Tomcat servlet container 度量数据
lr_user_data_point("Tomcat JK Max threads", atof(lr_eval_string("{JKMaxThreads}")));
lr_user_data_point("Tomcat JK Min spare threads", atof(lr_eval_string("{JKMinSpareThreads}")));
lr_user_data_point("Tomcat JK Max spare threads", atof(lr_eval_string("{JKMaxSpareThreads}")));
lr_user_data_point("Tomcat JK Current spare threads", atof(lr_eval_string("{JKCurrentSpareThreads}")));
lr_user_data_point("Tomcat JK Current thread busy", atof(lr_eval_string("{JKCurrentThreadBusy}")));
lr_user_data_point("Tomcat JK Max processing time", atof(lr_eval_string("{JKMaxProcessingTime}")));
lr_user_data_point("Tomcat JK Request count", atof(lr_eval_string("{JKRequestCount}")));
lr_user_data_point("Tomcat JK Error count", atof(lr_eval_string("{JKErrorCount}")));
lr_user_data_point("Tomcat JK Bytes received", atof(lr_eval_string("{JKBytesReceived}")));
lr_user_data_point("Tomcat JK Bytes sent", atof(lr_eval_string("{JKBytesSent}"))); return ;
}
2)然后在Run-time中设定数据收集的间隔:

3)最后在Controller中设置脚本运行,这样场景运行完毕后,即可在Analysis中添加“User Defined Data Points”查看收集到的Tomcat性能数据:

这种收集数据的弊端是需要通过网络请求Tomcat的页面,会对Tomcat服务器的性能造成一定的影响,如果Tomcat出现性能瓶颈,则收集数据时也可能碰到连接错误,因此,最好把收集数据点的间隔设大一点,例如5秒~10秒收集一个数据点。或尽量不采用LR监控。
LR监控tomcat服务器的更多相关文章
- 如何监控Tomcat服务器
如何监控Tomcat服务器 发表于:2009-06-25来源:作者:点击数:2651 标签:tomcatTomcat服务器 在进行 性能测试 时,一般都需要对应用服务器进行监控,监控的指标包括应用服务 ...
- 通过LR监控Linux服务器性能
1)设置监控服务器要监控 UNIX 资源,必须配置 rstatd 守护程序.注意,可能已经配置了 rstatd守护程序,因为当计算机收到一个 rstatd 请求时,该计算机上的 inetd 自动激活r ...
- LR监控apache服务器
开启mod_status模块功能,在LR的controller中找到apache资源图双击并右键添加度量,如下图: 添加apache服务器IP地址.选择系统平台.添加需要监控的计数器即可进行 ...
- 服务器上监控tomcat,如果挂掉则重启
该脚本用于监控tomcat服务器是否可用,如果服务不可用则重启tomcat 略微修改后也可以用于其他服务的监控 monitor.sh 脚本如下 #!/bin/sh # 定义要监控的页面地址 WebUr ...
- 运用JMX监控Tomcat/Java jvisualvm简要说明
公司线上项目出现了java heap space 然后经过查询知晓了下面工具于是开始了尝试. visualvm能干什么:监控内存泄露,跟踪垃圾回收,执行时内存.cpu分析,线程分析... jvisua ...
- LR监控Windows Server 2008 R2系统资源提示“指定的网络名不可用。”
问题现象: LR监控远程服务器Window Server 2008 R2 系统资源,提示“Monitor name :Windows Resources. Cannot connect to mach ...
- LR如何监控tomcat性能
使用LoadRunner做性能测试,一般的直觉是LR只能完成脚本录制和编写模拟用户的请求行为,但是在某些情况下,要监控一些中间件或web服务器的性能时,就不能通过录制脚本来完成了,那么就需要手工来编写 ...
- JaCoCo在Tomcat服务器上监控代码覆盖率的使用方法
简介 Jacoco是一个开源的覆盖率工具.Jacoco可以嵌入到Ant .Maven中,并提供了EclEmma Eclipse插件,也可以使用JavaAgent技术监控Java程序.很多第三方的工具提 ...
- Windows负载机JVM 远程监控Linux服务器下tomcat
基本是跟着网上的操作进行的,除了遇到一个Local host name unknown的问题: 一.Linux服务器操作部分 服务器地址:10.64.111.68 首先配置JMX: 1.找到jdk目录 ...
随机推荐
- UVA 400 - Unix ls (Unixls命令)
csdn : https://blog.csdn.net/su_cicada/article/details/86773007 例题5-8 Unixls命令(Unix ls,UVa400) 输入正整数 ...
- python 位运算【实测】
python 位运算符为 << 左移,>> 右移 3<<2 既 3 的二进制整体向左移两位 : : 可以这么算 3*(2的2次方)= 12 11>> ...
- 柴柴随笔第三篇:安装虚拟机以及Linux基础入门
虚拟机的安装 老师提供的作业指南给了我莫大的帮助,一步一步按着其中操作提示和网址链接,我首先下好了VM,也创建好了自己的第一台虚拟机. 接着按照步骤安装了Ubuntu到我的虚拟机. 到此,一切都顺风顺 ...
- 2016-2017-2 《Java程序设计》第二周学习总结
20155319 2016-2017-2 <Java程序设计>第二周学习总结 课堂学习内容 git:版本控制 java -d bin(当地文件夹) src/Hello.java把生成的.c ...
- 20155327李百乾 Exp3 免杀原理与实践
20155327李百乾 Exp3 免杀原理与实践 实践guocheng 一.Msfvenom使用编码器 1.利用(virustota)[https://www.virustotal.com/]检测实验 ...
- Oracle下如何设置 log_archive_dest
一:存在 DB_RECOVERY_FILE_DEST 时,如何设置 LOG_ARCHIVE_DEST: SQL> archive log listデータベース・ログ・モード アーカイブ・モード自 ...
- 如何注册Uber司机(全国版最新最详细注册流程)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://didi-uber.com/archiv ...
- cookie和session在Django中的应用
1 会话跟踪技术 什么是会话跟踪 我们需要先了解一下什么是会话!可以把会话理解为客户端与服务器之间的一次会晤,在一次会晤中可能会包含多次请求和响应.例如你给10086打个电话,你就是客户端,而1008 ...
- Mongodb大数据语法大全
JSON和MONGODBJSON不止是一种交换数据的方式,也是一种存储数据的良好方式,实际上MONGODB并未使用JSON存储数据,而是使用由MONGODB团队开发的一种称为BSON的开放数据格式. ...
- JUC——ThreadFactory线程工厂类(四)
ThreadFactory线程工厂类 在默认情况下如果要想创建一个线程类对象,大部分情况的选择是:直接通过子类为父类进行实例化,利用Runnable子类为Runnable接口实例化. 或者直接调用La ...