如何对应用服务性能问题诊断(Tomcat、Weblogic中间件)
在我们web项目中,我们常见的web应用服务器有Tomcat、Weblogic、WebSphere。它们是互联网应用系统的基础架构软件,也叫“中间件”,负责处理动态在页面请求,并为应用提供了名字、事务、安全、消息、数据访问等,此外,它们还是提供应该构建的开发、部署、运行及管理功能。
当我们对项目做性能测试时,我们如何更好地监控它们,并诊断出性能问题呢?下以是我对Tomcat和Weblogic的一些性能监控分析方法:
1、 Tomcat性能监控分析
Tomcat是一个免费的开放源代码的web应用服务器软件,主要用来支持运行Java Servlet/JSP。Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡和邮件服务等开发应用系统常用的功能,而且它还不断的改进和完善中,使用Tomcat作为web应用服务器,在系统应用性能上有很大帮助,以下介绍几种监控Tomcat性能的方法:
1) Tomcat自带的监控功能
使用过Tomcat的人大概都知道,它附带了一个监控页面,先修改配置文件/conf目录下的tomcat-users.xml文件,为监控的用户添加权限,并且需要添加一个名为“manager-gui”的角色,如下:
<role rolename="manager-gui"/> <user username="monitor" password="123456" roles="manager-gui"/>
保存后,访问http://localhost:8088/manager/status,如图,可查看Tomcat性能情况

2) 用LambdaProbe监控Tomcat
网上下载probe压缩文件,http://www.lambdaprobe.org/ 解压后,可以看到有个probe.war文件,接着需要修改两个文件
a、修改tomcat下conf/ tomcat-users.xml文件,添加如下代码:
<role rolename="manager"/>
<role rolename="poweruser"/>
<role rolename="poweruserplus"/>
<role rolename="probeuser"/>
<user username="probe" password="123456" roles="manager,probeuser,poweruser,poweruserplus"/>
b、修改tomcat下bin/Catalina.bat文件,添加如下代码:
set CATALINA_OPTS=-Xms512m -Xmx1024m -Dcom.sun.management.jmxremote=true -Dcom.sun.management.jmxremote.port=29001 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false
启动tomcat后,访问http://localhost:8088, 输入用户名:probe,密码123456,登录后,
在页面中“WAR file to deploy”点击“浏览”将probe.war文件发布到tomcat应用中
访问http://localhost:8088/probe/,查看tomcat实时运行的应用程序的性能,如图

3) LoadRunner编写脚本实现Tomcat性能监控
LR不支持直接监控Tomcat,但是可以在VUGen中编写脚本来获取性能数据,其实是编写大量的关联函数web_reg_sava_param()及lr_user_data_point函数,例如:
double atof(const char *string);
extern char * strtok(char * token, const char * delimiter);
collectMetrics(){
int countP, counts, countF, countF, countR, countK;
int numValues;
static int loggedVersionInfo = FALSE;
lr_save_string(“127.0.0.1”,”ServerName”);
web_set max_html_param_len();
web_set_user(“admin”,”admin”,”{ServerName}”);
lr_start_transaction(“monitor tomcat”);
web_reg_save_param(“JVMFreeMemory”,”LR=Free memory”,”RB=MB”,”Ord=”,LAST);
略……………这里添加多个监控指标
Lr_end_transaction(“monitor tomcat”,LR_AUTO);
写入Tomcat JVM度量数据
Lr_user_data_point(“Tomcat JVM Free memory”,atof(lr_eval_string(“{JVMFreeMemory}”)));
}
然后在Run-time中设置数据收集的间隔“pacing”,最好设置在5-10s,最后在Controller中设置脚本运行,场景运行完毕后,在Analysis分析结果图标中添加“User Defined Data Points”,查看收集到的Tomcat性能数据。
4) JMX监控Tomcat
使用JMX监控Tomcat,需要编写JMX提供接口的实现类,该接口是任何java程序都可以调用访问的,编写java程序来收集Tomcat性能数据,在此就略过啦!
5) 优化JVM提高Tomcat性能
a、 修改Tomcat启动/最大时的运行内存来监控性能指标的影响,即修改bin/Catalina.bat文件;
JAVA_OPTS=-Xms512m -Xmx1024m
b、 修改conf目录下server.xml文件maxThreads的值来调整Tomcat的最大连接线程数;
c、 同上,修改connectionTimeout的值来调整连接超时数;
d、 同上,修改acceptCount的值来调整最大排队数;
2、 Weblogic中间件监控性能分析
a、 在weblogic控制台页面调整Session策略;
b、 JDBC连接数监控及参数的调整,如Initial Capacity、Maximum Capcity等;
c、 JVM监控分析,可设置JVM启动时的参数;
如何对应用服务性能问题诊断(Tomcat、Weblogic中间件)的更多相关文章
- docker 实战---部署tomcat\weblogic集群 (二)
安装tomcat镜像 准备好须要的jdk tomcat等软件放到home文件夹以下 启动一个虚拟机 docker run -t -i -v /home:/opt/data --name mk_tom ...
- Docker创建 tomcat/weblogic 集群
安装 tomcat 镜像 准备好需要的 jdk.tomcat 等软件放到 home 目录下面,启动一个容器 docker run -t -i -v /home:/opt/data --name mk_ ...
- c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现
春节放假期间,一直在学习c++,越想越发现c++标准之于gcc/vc/boost等实现相当于jsr规范之于sunjdk/ibmjdk/tomcat/weblogic等实现
- jstack来分析linux服务器上Java应用服务性能异常
使用jdk自带的jstack来分析linux服务器上应用服务性能异常: 1.top查找出哪个进程消耗的系统资源情况 [op1@jira ~]$ top top - 19:23:43 up 22 day ...
- 安装weblogic中间件_test
小编对他还不是很了解,等了解的时候小编吧这句话删除(注意) 如果过程中有问题的话请联系 QQ:291562721 weblogic是ORACLE商家,他是一门中间件服务: 因为一些安全的原因,扫描发现 ...
- 性能监控 -- 中间件性能监控【Weblogic控制台】
通过WebLogic管理控制台可以实时获取各性能指标,通过控制台,可以对weblogic的性能及运行状况,发布的应用.资源等进行监视 1. 进入Weblogic管理控制台,单击服务器,选择一台需监控的 ...
- Kafka、RabbitMQ、RocketMQ消息中间件的对比 —— 消息发送性能-转自阿里中间件
引言 分布式系统中,我们广泛运用消息中间件进行系统间的数据交换,便于异步解耦.现在开源的消息中间件有很多,前段时间我们自家的产品 RocketMQ (MetaQ的内核) 也顺利开源,得到大家的关注. ...
- java-JProfiler(二)-进行本地JVM的性能监控-tomcat
监视本地的Tomcat, 看似是本地,其实JProfiler GUI在一个单独的JVM里启动,他与被监视的目标jvm之间通过socket通讯,目的为了不干扰目标JVM.所以监视本地Tomcat与监视远 ...
- 一次WebSphere性能问题诊断过程
一次接到用户电话,说某个应用在并发量稍大的情况下就会出现响应时间陡然增大,同时管理控制台的响应时间也很慢,几乎无法进行正常工作. 赶到现场后,查看平台版本为Webshpere6.0.2.29,操作系统 ...
随机推荐
- POJ 3254 炮兵阵地(状态压缩DP)
题意:由方格组成的矩阵,每个方格可以放大炮用P表示,不可以放大炮用H表示,求放最多的大炮,大炮与大炮间不会互相攻击.大炮的攻击范围为两个方格. 分析:这次当前行的状态不仅和上一行有关,还和上上行有关, ...
- 内外连接、组函数、DDL、DML和TCL
前言 cross join ,是笛卡尔积:nature join 是自然连接. 正文 内外连接 inner join inner join 的inner能够省略. 内连接 在一个表中可以找到在还有一个 ...
- html5lib-python doc
http://html5lib.readthedocs.org/en/latest/ By default, the document will be an xml.etree element ins ...
- iOS:UI系列之UINavigationController
又到了总结的时间了,突然间感觉时间过得好快啊, 总觉的时间不够用,但是这也没办法啊, 只有自己挤时间了,虽然是零基础,但是这并不能代表什么啦,只要努力,收获总还是有的, 同时我也相信广大的博友肯定也有 ...
- servlet获得完整路径
request.getQueryString() request.getParameterMap() request.getParameterNames() 在servlet中GET请求可以通过Htt ...
- [Python笔记][第四章Python正则表达式]
2016/1/28学习内容 第四章 Python字符串与正则表达式之正则表达式 正则表达式是字符串处理的有力工具和技术,正则表达式使用预定义的特定模式去匹配一类具有共同特征的字符串,主要用于字符串处理 ...
- VS2012 拆分视图按钮不见,代码,设计
工具--选项--HTML设计器 然后重启就有了.
- php + apache + mysql
http://archive.apache.org/dist/httpd/binaries/win32/ Apache msi 下载地址
- ASP.NET网站与ASP.NET应用程序的区别
我们使用VS做ASP.NET的时候,可以选择新建ASP.NET应用程序,同时也可以新建ASP.NET网站,两者有什么具体区别呢?今天真是很幸运,比别人多上了老师一节课,讲的是这两者之间的一些区别.我学 ...
- application windows are expected to have a root view controller错误
产生这个提示的操作:在xcode4.6中创建一个名字为appTest空工程,create一个ios-application-empty application,直接编译运行 错误提示:虽然编译通过,也 ...