如果来自 WebSphere Commerce 店面的响应较慢,您必须快速识别并修复导致性能瓶颈的问题。问题可能发生在不同层上,比如 Web 服务器、WebSphere Application Server 或数据库。可以使用 PMT 找到并排除多种类型的 WebSphere Commerce 性能问题。提供的案例研究展示了如何使用 PMT 识别 WebSphere Commerce 中的性能问题。
PMT 提供了度量 WebSphere Commerce 中的性能所需的功能和适用性。在 PMT 中,指定您想要分析的性能指标,然后生成可用来分析 WebSphere Commerce 性能问题的 PMT 报告。
可使用 PMT 生成以下类型的报告:
图 1显示了操作性能报告的 Basic 布局的快照。
图 1. 操作性能报告的 Basic 布局的快照
点击查看大图
关闭 [x]
使用 PMT 生成可用来分析 WebSphere Commerce 中的性能问题的报告。
要生成报告,可执行以下步骤:
启用性能度量记录器。
PMT 是 WebSphere Commerce 的一个内置组件。因此,可从 WebSphere 管理控制台中启用 com.ibm.commerce.foundation.logging.service.*=FINE
记录器来启用性能度量记录器。
要获得更准确的指标,在 FINEST 级别上启用该记录器。要最小化性能记录器对生产系统的性能影响,可仅使用 FINE 级别。
有关记录级别的更多信息,请参阅参考资料。
trace.log 文件包含在服务器上运行的所有请求的执行指标。清单 1显示了一个指标日志示例。
要在工具包上生成性能报告,运行 %TOOLKIT_DIR%/bin/generatePerformanceReport.bat
命令。可在 %TOOLKIT_DIR%/performance/config/analysis-local.properties 中修改配置文件来自定义报告生成阶段。
在运行时环境中生成报告。
要在运行时环境中生成性能报告,运行 %WC_INSTALLDIR%/bin/generatePerformanceReport.sh
命令。
可在 %WC_INSTALLDIR%/performance/config/runtime-analysis.properties 中修改配置文件来自定义报告生成阶段。
要在运行时系统上生成报告而不使用图形用户界面,可应用 APAR JR52262(参见参考资料)。
读取性能报告。
生成报告后,您的 Web 浏览器会显示第 2 步中收集的执行统计数据。分析这些指标,以确定为您应用程序的每一层使用的时间量。可在以下文件夹中找到报告:
可单击一列来对报告排序。
清单 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 的效率,其中描述了一个典型的性能问题和解决方案。
问题:店面中嘉宾购物者活动的响应正常。但是,在注册用户登录并开始浏览和购物后,响应变得非常慢。
要解决该问题,可执行以下步骤:
基于性能结果,您发现 CategoryDisplay 花的时间最多。图 2显示了整个界面和各个步骤。
图 2. CategoryDisplay 的堆栈
点击查看大图
关闭 [x]
图 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 的堆栈
点击查看大图
关闭 [x]
图 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 的堆栈
点击查看大图
关闭 [x]
图 5. GlobalLogin.jsp 的堆栈
点击查看大图
关闭 [x]
图 6. LanguageCurrency.jsp 的堆栈
点击查看大图
关闭 [x]
图 4、图 5和图 6显示了图 3中用时最多的堆栈操作。您会发现这 3 个堆栈共享 REST 标记:store/{storeId}/info。REST 调用花时最多。因此,您应重点分析 REST 调用。
图 7. Store/{storeId}/info 的堆栈
点击查看大图
关闭 [x]
您会发现图 7中一个 BOD 和 DataBean 之间的 9.5 秒持续时间是响应时间缓慢的原因。Delta 持续时间表示一个未构建来收集更多细节的代码节。可分析执行堆栈报告中的执行时间,确定性能问题的原因。有关分析报告中的执行时间的更多信息,请参见参考资料。
回页首
识别 WebSphere Commerce 性能问题的任务既困难又耗时。提供的案例研究清晰显示出,PMT 在识别 WebSphere Commerce 中的性能问题时既高效又准确。
回页首
感谢以下来自 WebSphere Commerce 性能团队的人员提供帮助、评审、参考和宝贵建议。
Noureddine Brahimi - WebSphere Commerce 性能分析师
Zi Yan Tu - WebSphere Commerce 性能团队负责人