XX网银系统性能问题分析总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一、问题现象
通过对测试系统进行初步的分析,其WAS的JVM内存、线程池和数据源连接池并未发现配置上的问题。
根据测试人员描述:测试系统进行长时间的压力测试过程,存在性能稳定性较差,部分场景的测试指标不达标的情况。
二、系统环境
WAS 7.0
初始堆:2048MB
最大堆:4096MB
三、测试分析
1、查询转账记录,此场景测试超时失败,收集javacore分析发现进行数据库操作返回缓慢,代码堆栈如下:
at .SocketInputStream.socketRead0(Native Method)
at .SocketInputStream.read(SocketInputStream.java:129)
at com.ibm.db2.jcc.t4.x.b(x.java:208)
at com.ibm.db2.jcc.t4.x.c(x.java:360)
at com.ibm.db2.jcc.t4.x.c(x.java:473)
at com.ibm.db2.jcc.t4.x.v(x.java:1241)
at com.ibm.db2.jcc.t4.bb.c(bb.java:30)
at com.ibm.db2.jcc.t4.q.a(q.java:32)
at com.ibm.db2.jcc.t4.i.readFetch_(i.java:263)
at com.ibm.db2.jcc.am.ResultSet.flowFetch(ResultSet.java:3796)
at com.ibm.db2.jcc.t4.c.f(c.java:2386)
at com.ibm.db2.jcc.am.fc.a(fc.java:208)
at com.ibm.db2.jcc.t4.c.a(c.java:127)
at com.ibm.db2.jcc.am.ResultSet.nextX(ResultSet.java:381)
at com.ibm.db2.jcc.am.ResultSet.next(ResultSet.java:308)
at com.ibm.ws.rsadapter.jdbc.WSJdbcResultSet.next(WSJdbcResultSet.java:3120)
at com.ecc.emp.jdbc.procedure.ProcedureOpForDB2.processResultSets(ProcedureOpForDB2.java:143)
at com.ecc.liana.jdbc.procedure.ProcedureAccessService.executeProcedure(ProcedureAccessService.java:123)
at com.ecc.liana.action.ProcedureAccessAction.execute(ProcedureAccessAction.java:170)
at com.ecc.emp.flow.EMPFlow.execute(EMPFlow.java:196)
at com.ecc.emp.flow.Operation.execute(Operation.java:91)
at com.ecc.emp.flow.EMPBusinessLogic.execute(EMPBusinessLogic.java:89)
at com.ecc.emp.web.servlet.mvc.EMPRequestController.executeEMPLogic(EMPRequestController.java:604)
at com.ecc.emp.web.servlet.mvc.EMPRequestController.executeTheFlow(EMPRequestController.java:487)
at com.ecc.liana.controller.LianaRequestController.doRequest(LianaRequestController.java:147)
at com.ecc.emp.web.servlet.EMPRequestServlet.service(EMPRequestServlet.java:430)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)
2、跨行转账,此场景测试响应时间较长,收集javacore分析发现进行数据库操作返回缓慢,代码堆栈如下:
at java/net/SocketInputStream.socketRead0(Native Method)
at java/net/SocketInputStream.read(SocketInputStream.java:129(Compiled Code))
at com/ibm/db2/jcc/t4/x.b(x.java:208(Compiled Code))
at com/ibm/db2/jcc/t4/x.c(x.java:360(Compiled Code))
at com/ibm/db2/jcc/t4/x.c(x.java:473(Compiled Code))
at com/ibm/db2/jcc/t4/x.v(x.java:1241(Compiled Code))
at com/ibm/db2/jcc/t4/cb.b(cb.java:141(Compiled Code))
at com/ibm/db2/jcc/t4/T4XAConnection.readTransactionStart(T4XAConnection.java:302(Compiled Code))
at com/ibm/db2/jcc/am/Agent.beginReadChain(Agent.java:358(Compiled Code))
at com/ibm/db2/jcc/t4/a.beginReadChain(a.java:748(Compiled Code))
at com/ibm/db2/jcc/am/Agent.flow(Agent.java:232(Compiled Code))
at com/ibm/db2/jcc/am/jo.b(jo.java:4283(Compiled Code))
at com/ibm/db2/jcc/am/jo.ec(jo.java:735(Compiled Code))
at com/ibm/db2/jcc/am/jo.executeQuery(jo.java:708(Compiled Code))
at com/ibm/ws/rsadapter/jdbc/WSJdbcPreparedStatement.pmiExecuteQuery(WSJdbcPreparedStatement.java:1082(Compiled Code))
at com/ibm/ws/rsadapter/jdbc/WSJdbcPreparedStatement.executeQuery(WSJdbcPreparedStatement.java:703(Compiled Code))
at com/ecc/liana/loaf/action/QueryDataListUsingSpecialSQLAction.execute(QueryDataListUsingSpecialSQLAction.java:110(Compiled Code))
at com/ecc/emp/flow/EMPFlow.execute(EMPFlow.java:196(Compiled Code))
at com/ecc/emp/flow/Operation.execute(Operation.java:91(Compiled Code))
at com/ecc/emp/flow/EMPBusinessLogic.execute(EMPBusinessLogic.java:89(Compiled Code))
at com/ecc/emp/web/servlet/mvc/EMPRequestController.executeEMPLogic(EMPRequestController.java:604(Compiled Code))
at com/ecc/emp/web/servlet/mvc/EMPRequestController.executeTheFlow(EMPRequestController.java:487(Compiled Code))
at com/ecc/liana/controller/LianaRequestController.doRequest(LianaRequestController.java:147(Compiled Code))
at com/ecc/emp/web/servlet/EMPRequestServlet.service(EMPRequestServlet.java:430(Compiled Code))
at javax/servlet/http/HttpServlet.service(HttpServlet.java:831(Compiled Code))
3、行内转账,此场景测试响应时间较快,测试过程中存在响应时间小幅波动的情况,收集测试过程中javacore进行分析,并未发现明显问题。其中有个别偶发的异常情况建议关注:
个别线程短时间内出现日志输出排队的情况,如下图"WebContainer : 94"后面有11个线程排队。
at java/lang/Object.wait(Native Method)
at java/lang/Object.wait(Object.java:167(Compiled Code))
at org/apache/log4j/AsyncAppender.append(AsyncAppender.java:104(Compiled Code))