内容


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

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

Comments

概述

应用程序剖析 (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 出现的面板
    启用 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 中配置分析器

下一步是配置 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 透视图
    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 中的连接
      测试 RAD 中的连接
    5. 下面选择 Agents 选项卡。如果您此前已将 JVM 参数设置为启用 Java Profiling Agent,那么Java Profiling Agent (RE 1.5 或更新版本)应该会列在该选项卡中。展开代理树,找到 Execution Time Analysis。选中这两个代理。
      使用 Java Profiler 进行剖析
      使用 Java Profiler 进行剖析
      使用 Java Profiler 进行剖析

      如果您此前已将 JVM 参数设置为启用 J2EE Request Profiler,那么选项卡中会列出 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
      执行时间分析 - Java Profiling
      J2EE Request Profiler
      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 视图
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
J2EE Request Profiler

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

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

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

  • 方法
  • 实例

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


相关主题


评论

添加或订阅评论,请先登录注册

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