Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338995
  • 博文数量: 94
  • 博客积分: 1500
  • 博客等级: 上尉
  • 技术积分: 1020
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-11 09:23
文章分类
文章存档

2011年(76)

2010年(18)

分类: LINUX

2011-08-02 14:33:47

上一篇《WebSphere和DB2性能问题的发现和处理》中提到了通过定制WebSphere的性能监控基础结构(PMI)的监控对象,然后用自带的TPV(Tivoli Performance Viewer)工具查看运行情况。简单方便实用,却又有几个缺点:

  1. 一次只能监控一个AppServer:从控制台使用TPV时,一个浏览器同时只能观察一个AppServer的运行情况。就算新开窗口选择不同的Server,之前的窗口也会在刷新后变动到之后的Server运行情况。
  2. 在保存数据方面存在缺陷:TPV可以开启日志记录,但是这种日志是XML格式,现在还没有很好的工具能分析,且每采样一次,就会生成一个xml文件,短短1小时后就有上G数据,对于磁盘I/O的压力以及空间大小的占用不可忽视。
  3. 没有报表:我们无法查看某台WAS服务器一小时、一天、一周、一月或是任意指定的时间范围内的性能走势图。
  4. 没有警报功能。

不过TPV本来就并非定位为专业的监控工具,它提供的功能虽简单,但能满足我们分析过程中80%的需求。这个系列将介绍一些WebSphere下的监控和实时分析工具,希望能对TPV是个补充。这次介绍的是Mercury出品的Loadrunner。

“LoadRunner 是一种适用于各种体系架构的自动负载测试工具,通过模拟实际用户的操作行为和实施实时性能监测,来帮助用户排查和发现问题。”我们使用Loadrunner都是作为压力测试工具,单用来作为监控工具有点大材小用。但在做压力测试时,WebSphere的运行情况是重要的观察对象之一。通过在Loadrunner中监控WebSphere,同时监控操作系统的资源占用情况、Web服务器的运行情况,可以对比各个时间点、时间段的应用表现。

比如事务响应时间上升的时候是否是Web服务器积累了许多keep alive的链接没有释放,或者JVM正在做一次垃圾回收,亦或是线程池已经到达最大值、数据库连接已经用光……

废话说完,接下去是如何监控WebSphere6.X的方法。

首先要准备好Loadrunner8.1,并打上Fp4补丁。LR8.0虽然能够连接到WebSphere,但是不能获得计数器,Loadrunner9.0和9.1是大的不像样了,一个软件上G,所以没有尝试过。

WebSphere 中的配置 – 设置 PMI 规格级别

默认情况下,WebSphere 服务器中的基础架构性能监视(Performance Monitoring Infrastructure,PMI)的规范级别为“Standard”。 可以把它改成“全部”,这样可以监控更多的计数器。性能方面,会有5%~10%的下降,这也是没有办法的。你可以在确保应用一切正常后关闭监控功能,用Loadrunner得到更符合生产环境的结果。

  1. 连接到管理控制台 –
  2. 点击左侧树的“监视和调整”,点击“性能监视基础结构(PMI)。
  3. 点击需要启用数据收集的服务器。
  4. 点击基础架构性能监视(PMI)链接。然后启用 PMI 并为当前监视的统计集选择“全部”,应用变更。

安装perfServletApp.ear

  1. 点击企业应用程序,点击安装以安装 perfServletApp.ear 文件(默认在WebSphere/AppServer/installableApps目录下)
  2. 如果服务器启用了管理安全性,那么还需要“做下关联设置,perfServletApp安装完毕,进控制台重新设置这个该应用的“安全角色到用户/组映射”,选择“monitor”后点“查找用户”,然后搜索,将控制台中所有的帐户所有出现,将你需要授权访问改应用的帐户选择到右边。“确定”出来后再选择“所有已认证的用户吗”,让“monitor”关联到这个帐户。”

完成上述两步后重启服务器,让配置生效。

在浏览器中输入,若能够看到WebSpere的xml格式瞬时性能指标则配置成功。启用安全性的会让你输入用户名和密码,如果没有做过上面第二部的mapping操作,会报

PerformanceMonitor responseStatus=”failed” version=”6.1.0.0″
Error retrieving PMI data. javax.management.JMRuntimeException: ADMN0022E: Access is denied for the getStatsArray operation on Perf MBean because of insufficient or empty credentials.

Loadrunner设置

Loadrunner运行“Run Load Tests”,然后在场景的Run中,设置显示窗口为6个(默认4个)

点击新添加到一个窗口,双击左侧“Available Graphs”中“Web Application Server Graphs”中的“WebSphere 4.x-5.x”,对,你没看错,是4.x-5.x。

在新出来的窗口上右键点击Add Measurements,在出来的对话框中点击“Monitored Server Machines”下的add,选择WAS运行平台,Name中输入

或者你可以修改LR的配置文件
dat\monitors子目录下的xmlmonitorshared.ini文件,进行如下修改
[WAS4ServletMonitor]
DescrīptionFile=WebSphereDesc.xml
ServletName=perfservlet/
ServletAlias=wasPerfTool/servlet
然后添加monitor machine 时只要输入ip和端口即可

然后点击下面那个add,就会出现添加计数器画面

之后你就能在窗口中看到计数器的监视情况了

我一般会监视下面这些计数器

上副图中完美的蓝色锯齿状曲线就是UsedMemory,当然你可以根据需要添加不同的计数器,可以看缓存的使用情况、命中率,Servlet的执行时间等等。比TPV可以说更加方便和“稳定”(使用过TPV的应该会有这个感受)。

最后附上监控IHS的方法

编辑httpd.conf文件,将LoadModule status_module modules/mod_status.so前的注释去掉,同时去掉下述几行前的注释。把Allow from中的.your_domain.com更换为你允许监控的IP来源即可,我的是本地地址。


SetHandler server-status
Order deny,allow
Deny from all
Allow from 127.0.0.1

重启IHS,在 中你可以看到运行情况的概要,是详细信息。在Loadrunner中添加“Web Server Resource Graphs Apache”这个Monitor即可。

阅读(2507) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~