为何使用请求度量值?
请求度量值是使您能够跟踪各个事务的工具,它记录每个主要的 WebSphere® Application Server 组件中的处理时间。
开始之前
HTTP request/trade/scenario ------------------------------> 172 ms
Servlet/trade/scenario -----------------------------> 130 ms
EJB TradeEJB.getAccountData ---------------------> 38 ms
JDBC select --------------------------------> 7 ms

此事务流以及相关响应时间可以帮助您确定性能问题区域并调试资源约束问题。例如,流有助于确定事务将其大部分时间用于 Web 服务器插件、Web 容器、Enterprise JavaBeans (EJB) 容器还是后端数据库。每个级别收集的响应时间包括在该级别所花费的时间和在较低级别所花费的时间。 例如,servlet 的响应时间(130 毫秒)还包括来自于企业 bean 和 Java™ 数据库连接的 38 毫秒。 因此,92 毫秒来自于 servlet 进程。
请求度量值跟踪特定事务的响应时间。因为请求度量值跟踪个别事务,所以使用它会影响系统上的某些性能含义。但是,可以通过使用请求过滤功能减轻此功能的影响。
例如,工具可注入合成事务。然后,请求度量值可以为那些事务跟踪 WebSphere Application Server 环境中的响应时间。合成事务是管理员为了以前摄方式测试系统性能而注入系统的事务。此信息帮助管理员调整 Web 站点的性能和执行纠正操作。因此,请求度量值提供的信息可用作警报机制,以检测特定请求类型的性能何时超过可接受的阈值。请求度量值中的过滤机制可用于关注特定合成事务,并在此方案中帮助优化性能。
关于此任务
在隔离了问题区域后,使用请求度量值过滤机制来特别关注那些区域。例如,特定 servlet 或 EJB 方法中有隔离问题时,使用统一资源标识 (URI) 算法或 EJB 过滤器以仅仅检测 servlet 或 EJB 方法。 此过滤机制支持更集中的性能分析。
- 源 IP 过滤器
- URI 过滤器
- EJB 方法名过滤器
- JMS 参数过滤器
- Web Service 参数过滤器
当启用过滤时,只有与过滤器匹配的请求生成请求度量值数据、创建日志记录、调用 ARM 接口或所有操作。您可以将工作注入到正在运行的系统(特别是要生成跟踪信息),以评估正常负载上下文中特定类型请求的性能,忽略可能命中系统的来自其他源的请求。
过程
- 通过查看本节中的详细说明,了解有关请求度量值的更多信息。
- 配置和启用请求度量值。
- 检索性能数据和监视应用程序流程。
- 扩展监视范围,以便对可能需要其他检测点的应用程序进行跟踪。
示例
通过查看以下示例来了解如何使用请求度量值。
在此示例中,HitCount servlet 和 Increment 企业 bean 部署在两个不同的应用程序服务器进程上。如下图所示,Web 容器层次和 Enterprise JavaBeans (EJB) 容器层次运行在两个不同的应用程序服务器中。要设置这种配置,请安装 WebSphere Application Server Network Deployment。

假设 Web 服务器和 Web 容器层次均运行在机器 192.168.0.1 上,而 Enterprise JavaBeans (EJB) 容器层次运行在第二台机器 192.168.0.2 上。可能从另一个机器发送客户机请求;例如 192.168.0.3 或其他机器。
为了说明源 IP 过滤的用法,定义并启用了一个源 IP 过滤器 (192.168.0.3)。您可以通过 http://192.168.0.1/hitcount?selection=EJB&lookup=GBL&trans=CMT 跟踪产生于机器 192.168.0.3 的请求。不过,因为源 IP 地址不在过滤器列表中,所以不跟踪从任何其他机器产生的请求。
通过仅创建源 IP 过滤器,会有效跟踪来自该源 IP 地址的任何请求。此工具能有效找到具有系统欠载状态的性能问题。如果正常负载产生于其他 IP 地址,那么不会跟踪其请求。通过使用已定义的源 IP 地址来生成请求,您可以将系统在有负载时的跟踪记录与没有负载时的跟踪记录进行比较,以便了解各个中继段的性能瓶颈。此功能有助于将调整努力集中到复杂部署环境中的正确节点和进程上。
确保使用管理控制台启用请求度量值。同样,确保至少将跟踪级别设置为中继段(在进程边界写请求跟踪)。使用先前列出的配置,从机器 192.168.0.3 通过 HitCount servlet 发送请求 http://192.168.0.1/hitcount?selection=EJB&lookup=GBL&trans=CMT。
- Web 服务器插件的跟踪记录显示在机器 192.168.0.1 上的插件日志文件中(缺省位置是 plugins_root/logs/web_server_name/http_plugin.log)。
servlet 的跟踪记录显示在机器 192.168.0.1 上的应用程序服务器日志文件中(缺省位置是 profile_root/logs/appserver/SystemOut.log)。
servlet 的跟踪记录显示在机器 192.168.0.1 上的应用程序服务器日志文件中(缺省位置是 profile_root/logs/appserver/SystemOut.log)。
增量 bean 方法调用的跟踪记录显示在机器 192.168.0.2 上的应用程序服务器日志文件中(缺省位置是 profile_root/logs/appserver/SystemOut.log)。
增量 bean 方法调用的跟踪记录显示在机器 192.168.0.2 上的应用程序服务器日志文件中(缺省位置是 profile_root/logs/appserver/SystemOut.log)。
PLUGIN:
parent:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=0
- current:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=1
type=HTTP detail=/hitcount elapsed=90 bytesIn=0 bytesOut=2252
Application server (web container tier)
PMRM0003I: parent:ver=1,ip=192.168.0.1,time=1016556185102,pid=796,reqid=40,event=0
- current:ver=1,ip=192.168.0.1,time=1016556186102,pid=884,reqid=40,event=1
type=URI detail=/hitcount elapsed=60
PMRM0003I:
parent:ver=1,ip=192.168.0.1,time=1016556186102,pid=884,reqid=40,event=1
-
current:ver=1,ip=192.168.0.2,time=1016556190505,pid=9321,reqid=40,event=1
type=EJB
detail=com.ibm.defaultapplication.Increment.increment elapsed=40