使用 Rational Application Developer 剖析远程 WebSphere 应用程序

为 Java Profiler 代理或 J2EE Request Profiler 启用剖析功能

了解如何配置 IBM® Rational® Application Developer 和 WebSphere® Application Server,以便对您的远程 WebSphere 应用程序进行剖析。本文提供的步骤同时适用于 Java™ 分析和 J2EE Request Profiler。

Keerthana Sharath, 应用程序集成 & 中间件解决方案专家, IBM India Pvt. Ltd.

作者照片Keerthana Sharath 是一位应用程序集成 & 中间件解决方案专家,在 IBM 印度软件实验室 WebSphere Lab Services 工作了 4 年多。她的工作涉及各种产品的客户支持,包括 WebSphere Application Server、WebSphere Process Server、ILOG 和 Lombardi。她与 WebSphere Education Development 合作开发并交付了 WebSphere 课程。她是一位通过认证的 WebSphere Application Server 和 Process Server 管理员。



2011 年 12 月 12 日

概述

应用程序剖析 (profiling) 是一种分析技术,用于收集运行时数据和检测应用程序问题,比如内存泄露、性能瓶颈、过量对象创建和超过系统资源限制。Rational® Application Developer Version 7.5 是一个企业应用程序集成开发环境 (IDE),在开发最终部署在 WebSphere® Application Server 上的大型应用程序中是很受欢迎的一种选择。Rational Application Developer 允许您分析 Java™ 应用程序,以深入了解应用程序的性能和内存特征。

可以在应用程序上使用的两种分析器:

  • Java Profiler:这是一个基于标准的 Java 应用程序分析器,被紧密集成到 Eclipse 开发工作流中。Java Profiling Agent 提供关于独立应用程序或应用程序服务器上运行的应用程序的运行时行为的详细信息。它是一个代理实例,与 Agent Controller 部署在一起。
  • J2EE Request Profiler:这是应用程序服务器进程中驻留的一个代理,其目的是收集来自电子商务应用程序请求的拦截点的数据。它使用 Agent Controller 来外化这些数据,以便数据能通过工作台的 Profiling and Logging 透视图所提供的各种视图来呈现。J2EE Request Profiler 提供有关高级应用程序的数据。

如果能深入了解应用程序的运行时行为,就能更好地理解应用程序的资源需求和运行时可能出现的潜在瓶颈。分析器能够协助确定问题,并对需要调优的参数提供有用的见解以提高应用程序性能。

本文主要面向开发人员、性能调优专家和顾问。本文介绍如何使用 Rational Application Developer Version 7.5 的剖析功能对 WebSphere Application Server Version 8.0 上运行的应用程序进行剖析。配置一个外部 Application Server 实例和 Rational Application 分析器的步骤不同于将应用程序与 Rational Application Developer 集成时所需的步骤。

先决条件

本文假定存在以下先决条件:

  • 您必须对 Rational Application Developer 有深入的了解并使用它作为开发工具。
  • 您需要对 Application Server 环境和创建配置文件有深入了解。
  • 您需要拥有配置 Application Server 和执行管理任务的实践经验。

系统需求如下:

  • Microsoft® Windows®
  • Rational Application Developer Version 7.5(IBM Rational Agent Controller 已包含在 Application Developer 安装映像中,因此不需要单独安装)
  • WebSphere Application Server Version 8.0 ND 和一个 Cell 配置文件(Dmgr01 和 AppSrv01 已与其联合)

如图 1 所示,Rational Application Developer 可以在 WebSphere Application Server 上另一台机器上运行,也可以在同一台机器上运行。本文将介绍当目标 WebSphere 应用程序服务器实例位于本地或远程机器上时(不是与 Rational Application Developer 集成的 WebSphere 测试环境)如何连接并运行剖析。

针对应用程序分析的机器设置
机器设置图

设置环境变量

下列目录用作组件的安装路径。

  • Agent Controller 根:C:\IBM\SDP_1\AgentController
  • Application Server 根:C:\IBM\WebSphere\AppServer
  • Rational Application Developer 根:C:\IBM\SDP

启动 Application Server 和 Rational Application Developer 之前,必须在运行目标应用程序的机器上设置某些环境变量。

  1. 编辑 C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin 下的 SetupCmdLine.bat 文件,将清单 1 中的语句添加到该文件末尾。
设置环境变量
SET TPTP_AC_HOME=C:\IBM\SDP_1\AgentController

SET JAVA_PROFILER_HOME=%TPTP_AC_HOME%\plugins\org.eclipse.tptp.javaprofiler

SET PROBEKIT_HOME= \
C:\IBM\SDPShared\plugins\org.eclipse.hyades.probekit_4.2.400.v200809010100\os\win32\x86

SET BOOT_LOADER= C:\IBM\SDPShared\plugins\
org.eclipse.tptp.platform.jvmti.runtime_4.4.200.v200809010100\agent_files\win_ia32

SET LD_LIBRARY_PATH= \
%TPTP_AC_HOME%\bin;%TPTP_AC_HOME%\lib;%PROBEKIT_HOME%;%LD_LIBRARY_PATH%;%BOOT_LOADER%

SET PATH= \
%TPTP_AC_HOME%\bin;%TPTP_AC_HOME%\lib;%PROBEKIT_HOME%;%JAVA_PROFILER_HOME%;%PATH%
  1. 保存并关闭 SetupCmdLine.bat 文件。

配置 WebSphere Application Server

您需要配置 Application Server,以便 Application Developer Profiler 能够连接到它。

  1. 启动 Deployment Manager。打开一个命令提示并导航到 C:\IBM\WebSphere\AppServer\profiles\Dmgr01\bin( 其中 Dmgr01 是我们示例中的部署管理器配置文件)。输入命令 startManager.bat
    启动部署管理器
    启动部署管理器的命令行的屏幕截图
  2. 启动节点代理。导航到 C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin(其中 AppSrv01 是我们示例中的节点)。输入命令 startNode.bat
    启动节点管理器
    启动节点的命令行的屏幕截图
  3. 导航到 C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin 并输入命令 stopServer.bat server1,停止 AppSrv01。
  4. 在 Application Server 机器上打开一个浏览器并导航到以下地址,启动 Dmgr01 的管理控制台:http://localhost:9060/ibm/console
  5. 应用程序服务器时启动时必须启用剖析功能。在 Administrative Console 中,导航到 Servers > Server Types > WebSphere application servers > server1> Java and Process Management > Process definition > Java Virtual Machine

    要使用 Java Profiling Agent 进行剖析,在 Generic JVM 参数字段中输入以下内容:-agentlib:JPIBootLoader=JPIAgent:server=controlled;CGProf

    请参见 通用 JVM 参数 了解更多相关信息。

    启用 Java 剖析代理
    启用剖析功能的管理控制台面板

    要使用 J2EE Request Profiler 进行剖析,输入 -DPD_DT_ENABLED=true

    启用 J2EE Request Profiler
    启用 J2EE Request Profiler 出现的面板
    单击 OK 并保存配置更改。
  6. 启动 server1。打开一个命令提示并导航到 C:\IBM\WebSphere\AppServer\profiles\AppSrv01\bin。输入命令 startServer.bat server1
    启动应用程序服务器
    启动应用程序服务器的命令行的屏幕截图

    如果 Generic JVM arguments 字段设置为启用 Java Profiling Agent,那么服务器启动后似乎被挂起(参见 图 6),这是因为在这种 “controlled” 分析模式下,它正在等待来自 Rational Application Developer 的信号。


在 Rational Application Developer 中配置分析器

JVM 参数语法

本节详细描述在 Application Server Administrative Console 中启用剖析功能必须用到的通用 JVM 参数语法。

使用 -agentlib 选项调用 Java Profiling Agent:-agentlib:JPIBootLoader=JPIAgent:server=[< > ];<Profiler>。这个命令行 的结构如下:

  • JPIBootLoader:这是加载剖析代理的库。
  • JPIAgent:Java 5.0+ 分析代理。通过使用其他选项扩大命令行中的 JPIAgent 部分,您可以控制剖析代理的行为。下列为受支持的选项:
    server=[standalone | enabled | controlled]
  • standalone:剖析代理以无标头模式 (headless mode) 运行,这意味着无法从工作台与之交互。配置信息作为命令行接口的一部分提供,剖析代理直接将分析数据存储到一个文件中。晚些可将分析文件导入工作台。Java Profiling Agent 手动连接到一个 JVM 实例,并在一个输出文件中生成分析数据。默认输出文件名为 trace.trcxml,但您可以使用 file= filename 参数指定其他文件名。这个选项选中后,Java Profiling Agent 生成一个封闭的 (enclosing) traceRoot 元素,以便形成一个完整有效的 XML 文档。
  • enabled(这是个默认值):剖析代理在 JVM 后台运行不消耗资源,要到通过工作台进行连接并指示它开始监控时才消耗资源。然后,数据流经代理的数据通道,以供工作台使用。这种模式允许应用程序正常运行,但不生成分析数据,直到客户机连接到代理并向其发布指令。这个选项被选中时,Java Profiling Agent 只生成 XML 碎片,而不是完整的 XML 文档。
  • controlled:剖析代理阻止 JVM 初始化(代理被加载,但它阻止应用程序运行),直到客户机通过工作台连接它并指示它开始监控。这意味着,当剖析代理以 controlled 模式启动时,它似乎挂起 JVM,直到被指示启动监控;它只生成 XML 碎片,而不是完整的 XML 文档。
  • <Profiler>:这是要加载的 Profiler Library 的名称。有些分析器支持其他特定于分析器的选项,比如 CGProf(执行时间分析)、HeapProf(对象分配/堆分析)以及 ThreadProf(线程分析)。

下一步是配置 Rational Application Developer 分析程序。在安装 Rational Application Developer 的机器上执行这些步骤。

  1. 配置和启动 Agent Controller。

    1. 打开一个命令提示并导航到 C:\IBM\SDP_1\AgentController\bin。运行 SetConfig.bat 脚本,为 Agent Controller 生成配置文件。
    2. Agent Controller 可以作为应用程序或 Windows Service 启动。要作为应用程序启动,从 C:\IBM\SDP_1\AgentController\bin 目录中输入命令 ACServer.exe
  2. 启动 Rational Application Developer。在命令窗口中,导航到 C:\IBM\SDP 并输入命令 eclipse.exe
  3. 程序启动后,切换到 Profiling Perspective。 要打开这个透视图:

    1. 单击 Window > Open Perspective > Other...
    2. 选择列表中的 Profiling and Logging,单击 OK。
    Profiling and Logging 透视图
    RAD 中的 Profiling and Logging 透视图
  4. 连接到服务器实例的一个远程 Java 进程:

    1. 选择 Run > Profile Configurations...。在配置窗口中,双击 Attach to Agent,然后单击 New_configuration
    2. 输入配置名称。
    3. 在 Host 选项卡上的 Default Hosts 部分,选择本地主机的地址,例如 localhost[10002]。如果您正在配置远程服务器,那么输入远程机器的主机名或 IP 地址。单击 OK。
    4. 单击 Test Connection,验证通信是否能工作。如果连接失败,检查 Agent Controller 是否正在使用默认端口运行。
      测试连接
      测试 RAD 中的连接
    5. 下面选择 Agents 选项卡。如果您此前已将 JVM 参数设置为启用 Java Profiling Agent,那么Java Profiling Agent (RE 1.5 或更新版本)应该会列在该选项卡中。展开代理树,找到 Execution Time Analysis。选中这两个代理。
      使用 Java Profiler 进行剖析
      使用 Java Profiler 进行剖析

      如果您此前已将 JVM 参数设置为启用 J2EE Request Profiler,那么选项卡中会列出 J2EE Request Profiler。选中列示的代理。

      使用 J2EE Request Profiler 进行剖析
      使用 J2EE Request Profiler 进行分析
    6. 选择 CommonDestination 选项卡,查看其他配置选项,比如指定和分析项目。您可以根据需要修改这两个选项卡上的值,但在本示例中不需要额外配置。
    7. 切换回 Agents 选项卡并单击 Profile

    8. 监控开始后,就可以开始分析应用程序了。Profiling Monitor 选项卡中的 sever1 的 Process ID (PID) 如 图 11图 12 所示。
      执行时间分析 - Java Profiling
      执行时间分析 - Java Profiling
      J2EE Request Profiler
      J2EE Request Profiler

剖析应用程序和视图

配置好 Profiler 后,就可以通过 URL http://localhost:9080/< application_name > 访问需要剖析的应用程序。可以在 Rational Application Developer 中剖析数据,以便采集和分析数据。

Java Profiler 视图。要打开一个新视图,右键单击 <monitoring....collecting> Profiling (date) > Open With。可以选择以下几个选项:

  • 执行时间分析 (Execution Time Analysis)
  • 内在统计 (Memory Statistics)
  • 线程统计 (Thread Statistics)
Java Profiler 视图
RAD 的 Java Profiler 视图

图 14 展示了一个样例应用程序的执行统计数据。

样例执行统计数据
样例执行统计数据

J2EE Request Profiler 视图。要打开一个新视图,右键单击 <monitoring....collecting> J2EE Request Profiler (date) - > Open With。可以选择几个选项,例如 UML2 Object Interactions、UML2 Class Interactions 和 UML2 Thread Interactions。

要在 Profiling Perspective 中显示采集的数据,右键单击 Profiling Monitor 视图并选择 Refresh Views。这将更新所有视图的数据。数据显示后,必须要再次刷才能显示新采集的数据。

J2EE Request Profiler
J2EE Request Profiler

图 16 显示了一个样例应用程序的内存统计数据。

样例内存统计数据
样例内存统计数据

可以在下面的适当模式中找到关于这些视图的更多信息。这 4 个级别是:

  • 方法
  • 实例

可以通过选择适当的工具栏控件在包、类、方法和实例模式之间切换。

参考资料

学习

获得产品和技术

讨论

条评论

developerWorks: 登录

标有星(*)号的字段是必填字段。


需要一个 IBM ID?
忘记 IBM ID?


忘记密码?
更改您的密码

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件

 


在您首次登录 developerWorks 时,会为您创建一份个人概要。您的个人概要中的信息(您的姓名、国家/地区,以及公司名称)是公开显示的,而且会随着您发布的任何内容一起显示,除非您选择隐藏您的公司名称。您可以随时更新您的 IBM 帐户。

所有提交的信息确保安全。

选择您的昵称



当您初次登录到 developerWorks 时,将会为您创建一份概要信息,您需要指定一个昵称。您的昵称将和您在 developerWorks 发布的内容显示在一起。

昵称长度在 3 至 31 个字符之间。 您的昵称在 developerWorks 社区中必须是唯一的,并且出于隐私保护的原因,不能是您的电子邮件地址。

标有星(*)号的字段是必填字段。

(昵称长度在 3 至 31 个字符之间)

单击提交则表示您同意developerWorks 的条款和条件。 查看条款和条件.

 


所有提交的信息确保安全。


static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=WebSphere, Java technology
ArticleID=780640
ArticleTitle=使用 Rational Application Developer 剖析远程 WebSphere 应用程序
publish-date=12122011