TPV的缺点
大家都知道 IBM 的 WebSphere Application Server(WAS)在v5之后自带有TPV(Tivoli Performance Viewer) 用来监控WAS的运行状况 包括JVM内存使用状况、数据库连接池、WEB容器线程池、应用程序、用户会话、事务、缓存等资源 但是TPV存在的缺点主要有: (1)TPV本身是图形工具 假如要远程使用 我们只能用Extra!X等图形终端登录系统 不像telnet或Web系统那么方便 (2)集中监控方面存在缺陷 如果是WebSphere ND版本 那么你可以在一个TPV中监控所有加入该ND单元(Cell)的Base节点 一个节点就是一台WAS服务器 那么假设我有10个系统共40台WebSphere服务器 是否也可以都加入到一个ND单元来管理呢? 答案是不可取 原因主要在于两点: 一是这样TPV在启动的时候会非常慢 CPU占用率会非常高 因为要去连接40台机器的SOAP|RMI端口 还要读取它们的监控级别 实践证实在生产环境中 一旦ND中加入的Base节点超过10个 TPV在启动时的CPU占用率将超过50% 而且启动成功通常要消耗很长时间(根据系统性能、网络快慢而定) 如果放到生产环境 会严重影响系统运行 二是这样对WAS的管理不方便 试想一个ND单元中有40个节点 分别属于10个系统 逻辑上不清楚 通常的做法是一个系统对应一个ND单元 可能这个单元中会有多台WAS 的Base节点来分担负载 (3)保存性能数据方面存在缺陷 TPV提供了一种日志模式 可以将性能数据存到xml文件中 但是这些xml文件一是我们看起来很费力 因为它的格式是IBM内定的 不像数据库的TABLE那样整齐清楚; 二是这些xml文件的大小增长很快 通常1小时后就能有上G的数据 可想而知我们查看起来有多麻烦 假如我想把监控得到的性能数据记录到自定义的日志或数据库怎么办?TPV也没法做到 (4)在性能报警上存在不足 TPV里面有“性能顾问程序” 但是使用过的人都知道 它其实没什么用 我们经常会遇到WAS服务器停止响应(hang)、宕机(Crash)、内存溢出(OutOfMemory)等等情况 我们想随时监控WAS的性能状况 却又不想一直守着TPV 希望在WAS性能超过阀值时及时地通知我们 比如发EMail 或在一个集中监控平台上有弹出框、红色提示等信息 这些TPV都没法做到 (5)没有报表 如果我想查看某台WAS服务器一小时、一天、一周、一月或是任意指定的时间范围内的性能走势图 怎么办?TPV在这方面也存在欠缺 而且IBM好像也没有类似的好工具