转载

排除 WebSphere Commerce 性能瓶颈

简介

如果来自 WebSphere Commerce 店面的响应较慢,您必须快速识别并修复导致性能瓶颈的问题。问题可能发生在不同层上,比如 Web 服务器、WebSphere Application Server 或数据库。可以使用 PMT 找到并排除多种类型的 WebSphere Commerce 性能问题。提供的案例研究展示了如何使用 PMT 识别 WebSphere Commerce 中的性能问题。

PMT

PMT 提供了度量 WebSphere Commerce 中的性能所需的功能和适用性。在 PMT 中,指定您想要分析的性能指标,然后生成可用来分析 WebSphere Commerce 性能问题的 PMT 报告。

报告类型

可使用 PMT 生成以下类型的报告:

执行性能报告
此报告阐明了单次执行的统计数据。
堆栈报告
此报告展示每次执行调用的时间量。
调用方报告
此报告显示对特定操作的调用来源。
操作性能报告
此报告聚合各个操作的统计数据。可使用布局来过滤操作性能报告。Basic 布局提供了一个操作的持续时间和该操作的平均响应大小的统计数据。Cache 布局包含每个操作与缓存相关的指标。Cache Potential 布局显示对缓存和不同操作的估算。All 布局显示来自所有布局的信息。

图 1显示了操作性能报告的 Basic 布局的快照。

图 1. 操作性能报告的 Basic 布局的快照

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 1. 操作性能报告的 Basic 布局的快照

排除 WebSphere Commerce 性能瓶颈

生成和分析报告

使用 PMT 生成可用来分析 WebSphere Commerce 中的性能问题的报告。

要生成报告,可执行以下步骤:

  1. 启用性能度量记录器。

    PMT 是 WebSphere Commerce 的一个内置组件。因此,可从 WebSphere 管理控制台中启用 com.ibm.commerce.foundation.logging.service.*=FINE 记录器来启用性能度量记录器。

    要获得更准确的指标,在 FINEST 级别上启用该记录器。要最小化性能记录器对生产系统的性能影响,可仅使用 FINE 级别。

    有关记录级别的更多信息,请参阅参考资料。

  2. 运行生成指标的请求。

    trace.log 文件包含在服务器上运行的所有请求的执行指标。清单 1显示了一个指标日志示例。

  3. 生成性能报告。可以在工具包环境或运行时环境中生成报告。
    1. 在工具包环境中生成报告。

      要在工具包上生成性能报告,运行 %TOOLKIT_DIR%/bin/generatePerformanceReport.bat 命令。可在 %TOOLKIT_DIR%/performance/config/analysis-local.properties 中修改配置文件来自定义报告生成阶段。

    2. 在运行时环境中生成报告。

      要在运行时环境中生成性能报告,运行 %WC_INSTALLDIR%/bin/generatePerformanceReport.sh 命令。

      可在 %WC_INSTALLDIR%/performance/config/runtime-analysis.properties 中修改配置文件来自定义报告生成阶段。

      要在运行时系统上生成报告而不使用图形用户界面,可应用 APAR JR52262(参见参考资料)。

  4. 读取性能报告。

    生成报告后,您的 Web 浏览器会显示第 2 步中收集的执行统计数据。分析这些指标,以确定为您应用程序的每一层使用的时间量。可在以下文件夹中找到报告:

    • 工具包:%TOOLKIT_DIR%/performance/reports/%CURRENT_DATE_TIME%
    • 运行时:%WC_INSTALLDIR%/performance/reports//%CURRENT_DATE_TIME %

    可单击一列来对报告排序。

清单 1. 指标日志示例

点击查看代码清单

关闭 [x]

[03/10/14 13:16:22:191 EDT] 00000039 ServletReques 1 PerfLog  operation="Servlet: Request: /webapp/wcs/stores/servlet/LogonForm" parameters="catalogId=[3074457345616676668] langId=[-1] myAcctMain=[1] storeId=[200]" id="6111981226644471817" parentId="0" startTime="13621958695318" stopTime="13622471523098" duration="512827780" resultSize="1869" cacheHit="false" cacheEnabled="false" />

清单 1显示了开始时间和结束时间(以纳秒为单位)。

回页首

评析案例研究

下面的案例研究中演示了 PMT 的效率,其中描述了一个典型的性能问题和解决方案。

问题:店面中嘉宾购物者活动的响应正常。但是,在注册用户登录并开始浏览和购物后,响应变得非常慢。

要解决该问题,可执行以下步骤:

  1. 启用一条轨迹来激活探查工具。
  2. 运行一个注册用户浏览 WebSphere Commerce 店面主页的场景。
  3. 生成性能报告。
  4. 打开操作性能报告文件并按累积执行时间对每个操作排序。

基于性能结果,您发现 CategoryDisplay 花的时间最多。图 2显示了整个界面和各个步骤。

图 2. CategoryDisplay 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 2. CategoryDisplay 的堆栈

排除 WebSphere Commerce 性能瓶颈

图 2显示 CategoryDisplay servlet 的完整堆栈用时 60.93 秒。该图还显示了每一步的时间。在分析该报告时,您会发现两个步骤所花的时间最多。第一个步骤是 /AuroraStorefrontAssetStore/Widgets/Header/header.jsp servlet,它用时 49 秒。第二个步骤是 rest 标记:store/{storeId}/info,它用时 10 秒。继续查看步骤。图 3显示了 /AuroraStorefrontAssetStore/Widgets/Header/header.jsp 的堆栈。

图 3. /AuroraStorefrontAssetStore/Widgets/Header/header.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 3. /AuroraStorefrontAssetStore/Widgets/Header/header.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

图 3清晰地显示出 4 个调用所花时间最多。REST 标记:store/{storeId}/info(如图 3所示)花了最多的时间。此外,ContentRecommendation.jsp 用时 10 秒。GlobalLogin.jsp 用时 10 秒,LanguageCurrency.jsp 用时 9.5 秒。继续查看这 3 个调用。图 4显示了 ContentRecommendation.jsp 的堆栈,Figure 5显示了 GlobalLogin.jsp 的堆栈,图 6显示了 LanguageCurrency.jsp 的堆栈。

图 4. ContentRecommendation.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 4. ContentRecommendation.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

图 5. GlobalLogin.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 5. GlobalLogin.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

图 6. LanguageCurrency.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 6. LanguageCurrency.jsp 的堆栈

排除 WebSphere Commerce 性能瓶颈

图 4、图 5和图 6显示了图 3中用时最多的堆栈操作。您会发现这 3 个堆栈共享 REST 标记:store/{storeId}/info。REST 调用花时最多。因此,您应重点分析 REST 调用。

图 7. Store/{storeId}/info 的堆栈

排除 WebSphere Commerce 性能瓶颈

点击查看大图

关闭 [x]

图 7. Store/{storeId}/info 的堆栈

排除 WebSphere Commerce 性能瓶颈

您会发现图 7中一个 BOD 和 DataBean 之间的 9.5 秒持续时间是响应时间缓慢的原因。Delta 持续时间表示一个未构建来收集更多细节的代码节。可分析执行堆栈报告中的执行时间,确定性能问题的原因。有关分析报告中的执行时间的更多信息,请参见参考资料。

回页首

结束语

识别 WebSphere Commerce 性能问题的任务既困难又耗时。提供的案例研究清晰显示出,PMT 在识别 WebSphere Commerce 中的性能问题时既高效又准确。

回页首

致谢

感谢以下来自 WebSphere Commerce 性能团队的人员提供帮助、评审、参考和宝贵建议。

Noureddine Brahimi - WebSphere Commerce 性能分析师

Zi Yan Tu - WebSphere Commerce 性能团队负责人

正文到此结束
Loading...