WebSphere脚本监控 下载本文

内容发布更新时间 : 2024/11/15 3:02:13星期一 下面是文章的全部内容请认真阅读。

Websphere监控分析

编写该文档的时候,内容大部分涉及单位的配置信息,特别是截图里面,不便于发布,只能去掉了,只保留最后一部分脚本监控分析,造成文档可能有些残缺,主要目的提供一个思路可以进一步留言交流。

1.1 WAS监控

1.1.1 PMI与TPV工具监控

1.1.1.1 PMI配置方法

1.1.1.2 PMI计数器

1.1.1.2.1 JDBC连接池JVM 1.1.1.2.2 Servlet 会话管理器 1.1.1.2.3 线程池事务管理器 1.1.1.2.4 Web Applications

1.1.1.3 TPV

1.1.1.3.1 用户设置 1.1.1.3.2 日志设置 1.1.1.3.3 日志保存设置 1.1.1.3.4 使用方法

1.1.2 脚本方式监控

PMI与TPV方式监控was无法满足我们如下两点要求:

? 自动监控性能、超过阀值自动报警

TPV里面有“性能顾问程序”,但是作用不大。我们经常会遇到WAS服务器停止响应(hang)、宕机(Crash)、内存溢出(OutOfMemory)等等情况,我们想随时监控WAS的性能状况,却又不想一直守着TPV,希望在WAS性能超过阀值时及时地通知我们,比如发Email或者短信。这些TPV都没

1

法做到。

? 保存性能数据、查看任意时间范围内性能报表

TPV提供了一种日志模式,可以将性能数据存到xml文件中。但是这些xml文件一是我们看起来很费力,因为它的格式是IBM内定的,不像数据库的TABLE那样整齐清楚; 二是这些xml文件的大小增长很快,通常1小时后就能有上G的数据,可想而知我们查看起来有多麻烦。假如我想把监控得到的性能数据记录到自定义的日志或数据库TPV也没法做到。 如果我想查看某服务器一小时、一天、一周、一月或是任意指定的时间范围内的性能走势图,就没办法实现了。

鉴于此,编制脚本以实现自动监控was的重要性能参数是非常必要的。

1.1.2.1 脚本功能

主要借助wsadmin 工具来实现脚本化监控was,示例脚本主要实现了监控JVM使用状况、线程池线程使用状况、JDBC连接池使用状况,并将重点关注数据重定向到日志文件,按照月份分割,以备后续使用excle生成透视图,最终实现了实时监控was重要参数、在发现问题时及时短信告警、提取任意时间was性能报表等需求。 ? 监控WAS的JVM使用情况

Uptime:Java 虚拟机已经运行的时间数(以秒为单位) Heapsize:Java 虚拟机运行时中的总内存(以千字节计)

UsedMemory:Java 虚拟机运行时中使用的内存容量(以千字节计) Usedmemorypercent:Java 虚拟机运行时内存使用百分率

获知JVM使用情况,当UsedMemory使用率非常高超过90%时,脚本会自动短信告警,避免OutOfMemory发生。

脚本会将监控类别、应用服务server对应的ip、server名称、实时的Uptime、heapsize、usedmemory、usedmemorypercent以及数据提取时间等重定向到日志文件,按照月份分割,以便使用excle生成透视图。

例如:2013-3-20 11:31至13:30之间,每5分钟提取的jvm内存使用率监控数据,可以看出bzsvr1、bzsvr2以及bzsvr3使用率均在20%-45%之间。

2

0.50.40.30.20.1bzsvr1bzsvr2bzsvr302013-3-20 11:312013-3-20 12:302013-3-20 13:30 ? 监控WAS的WebContain线程池使用情况

Lowerbound:池中线程下界 Upperbound:池中线程上界 PoolSize(current):池中线程当前数 ActiveCount:当前活动的线程数

当PoolSize达到设定的阀值90%时,通过短信方式告警以便提前处理,避免线程池满造成线程挂起现象。

脚本会将监控类别、应用服务server对应的ip、server名称、PoolSize、lowerbound、upperbound、ActiveCount以及数据提取时间等重定向到日志文件,按照月份分割,以便使用excle生成透视图。

例如:2013-3-20 11:31至13:30之间,每5分钟提取的线程池当前活动线程数量监控数据,可以看出bzsvr1、bzsvr2以及bzsvr3当前活动线程数均在1-14之间。

? 监控WAS的JDBC连接池使用情况

Freepoolsize:池中的空闲连接数

Waitingthreadcount:等待连接的平均并发线程数

3