技术开发 频道

使用JMX 接口来编写PMI 应用程序

  【IT168 技术文章】

         引言

  为了帮助识别性能问题及调优运行 Web 应用程序的环境,IBM® WebSphere® Application Server收集性能数据并提供接口来让外部的应用程序监控这些性能数据。数据是通过性能监控基础设施(Performance MonitoringInfrastructure,PMI)收集在 WebSphere Application Server 和客户应用程序中的,然后 PMI数据通过不同的接口向用户公开。

  目前有三种 PMI 数据接口可用:

  PMI客户机

  性能 servlet

  Java™ Management Extension (JMX)接口。

  PMI 客户机和 servlet 接口在 WebSphere Application Server V4 和 V5 中可用。JMX 接口是 WebSphereApplication Server V5 新增的一个接口。

  WebSphere Application Server包含了一个基本的浏览器 -- Tivoli® Performance Viewer(TPV)-- 来查看 PMI 数据,用户可以用它来查看 PMI 计数器的各种图表和值。也有许多使用这些 PMI 接口的第三方工具,可以可以通过它们来识别PMI 计数器的极限值并帮助客户分析 Web 站点什么时候有性能问题。

  本文解释了 PMI、JMX MBeans 和 J2EE管理规范所定义的性能数据框架之间的关系。我们将要讨论如何使用JMX 接口来访问 WebSphere Application Server PMI 数据,其中包括如何实例化一个 AdminClient实例、如何得到进行 PMI 访问所需的 JMX MBeans、如何设置 PMI 装备级别,以及如何获取 PMI 数据等内容。同时还包括一个使用 JMX接口收集 PMI 数据的 可下载样本程序。

  什么是 PMI ?

  Performance Monitoring Infrastructure 是 WebSphere Application Server中的一个底层框架,它从不同的运行时资源(如 JVM 和 Thread Pool)和应用程序组件(如 servlet 和 Enterprise JavaBeans(EJBs))收集性能数据。一些可用的 WebSphere Application Server V5 计数器的例子包括:

  平均响应时间

  总请求数

  线程池大小

  JVM 堆大小。

  PMI从服务器的不同组件收集这些数据并将它们组织成一个树状结构。图 1 是 Tivoli Performance Viewer中的一个快照,它显示了这个以服务器为根的树状结构,其中与服务器直连的树节点称为 PMI模块(用红圈标出),模块之下的树节点称为子模块,子模块下还可有子模块,以此类推。

  每个 PMI 模块和子模块都包含从相应的 WebSphere 组件中收集的 PMI数据列表。一些模块和子模块是从运行时实体收集数据的,另一些聚集来自这些运行时实体的数据。例如,PMI 为各种线程池(如 Object RequestBroker (ORB)和 Web 容器线程池)提供数据,并聚集单个线程池的数据。这些 PMI 数据用以下的树状层次来组织:

  线程池模块=>聚集所有线程池的数据的模块

  ....ORB 线程池=>用于处理收集在 ORB 线程池中的数据的子模块

  .... Web 容器线程池=>用于处理收集在 Web 容器线程池中的数据的子模块

  .... 其他线程池(如果还有的话)

  图 1. 来自 TPV 快照的 PMI 模块/子模块树状结构

  用户通过监控工具,如 Tivoli Performance Viewer(这是 WebSphere Application Server所附带的,以前称为 Resource Analyzer)和第三方工具检索 PMI 数据。用户也可以使用可编程接口(如 PMI 客户机和 JMXAPI)来编写自己的 PMI 应用程序。WebSphere Application Server V5 新增的一个服务器管理模块接口 -- JMX接口 -- 允许通过 JMX MBeans 来远程访问数据。

  以下的部分我们将会介绍 PMI、J2EE 性能数据框架和 JMX MBeans的关系,然后分步介绍如何使用 JMX 接口来发现 MBeans、如何设置装备级别以及如何得到 PMI 数据。(请参阅 参考资料以获取关于PMI 客户机 API 的信息。)

0
相关文章