项目背景简介
该系统以性能瓶颈定位为测试目的,该系统为B/S结构、J2EE架构,应用服务器为Tomcat 6.5,数据库为Oracle 10g。该系统的使用对象为公司的内部人员,网络环境为100兆局域网。
问题描述
用户反映访问页面时反应慢,并且出现部分请求失败的现象。
通过对单用户的网络带宽计算,排除网络性能瓶颈。
性能瓶颈定位技术思路
该项目引入应用性能管理工具dynaTrace协助问题的分析诊断,以高效定位到瓶颈的根本原因,甚至源代码的上下文。该工具由Server、Analysis、Collector、Agent、Client等五部分组成。其技术思路如下:
1)在应用服务器Tomcat植入dynaTrace Agent,该Agent作用是向应用前端监控Web 请求、向应用后端监控DB的SQL语句请求。并能7X24实时收集应用服务器的所有的日志,包括但不限于Web 请求的事务、DB执行的SQL语句。Server端向Client端返回数据并展现报表。
2)如上述思路,其测试环境部署如下示意图:
性能瓶颈定位排查步骤
1、通过错误信息快速定位瓶颈
对实时监控收集的日志进行相关性分析。首先查看其事务流图Transaction Flow。Failed Transactions显示失败的事务数及失败事务数占总事务数的百分比。图2中的Failed Transactions显示存在失败的事务867个,占总事务数的3.17%。如图2所示。
对出现失败的事务进行分析,首先查看失败事务提示的Error Log,如图3所示。显示存在4XX 、5XX Error,也有重要程序内部Log,具体Error如图4、图5、图6所示。
将收集的错误日志提交给开发人员。HTTP Response Code的错误详情日志可以协助开发人员快速定位有问题的URL并修复。Important Loggings可以帮助开发人员快速定位程序出现问题的原因。如图6显示创建Socket 连接失败,并提示确认相关Server已开启或相关组件已正常运行。