Elearning性能测试总结报告

发表于:2010-2-03 14:29

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:小糊涂仙(cnblogs)    来源:51Testing软件测试网采编

  一、项目情况

项目名称

Elearning

调优过程

定位出应用程序存在非线程安全代码

DBA 定位到未加绑定变量的SQL以及为数据库增加索引

增加jboss ajp connector 线程数

调整jvm 参数

调整DBCP 连接池参数

调高 log4j日志阀值减少IO

问题积累

在已经满足性能情况下, 服务器硬件充足,但web server层错误频率高

最终结论

耗费在增加http header、定位非线程安全以及dbcp连接参数不当时间最昂贵。本次性能测试与调优涉及多个层面,定位性能瓶颈依赖平常的知识积累,只要拆分模块得当,定位瓶颈有模式可以遵循。为了排查瓶颈是否在数据库要DBA协助。

另外,碰到问题,google是一流的帮手!

资源消耗

历时2周

  二、执行中问题与解决方案

  I类问题(已解决):

编号

问题描述

解决方法

1

手工执行功能成功,但vugen执行脚本服务器响应返回0字节

利用嗅探器ethereal发现手工执行与vugen执行脚本的差异,增加web_add_auto_header("modeltype","model");

解决问题后,经咨询东软开发工程师,服务器端解析输入代码有

if ("model".equals(webRequest.getHeader("ModelType")))
判断

2

Contoller Insufficient records for param X in table to provide the Vuser with unique data

删除根盘目录 Local Settings\Temp下文件,排除干扰

3

并发执行时,发现服务器随机错误,确认有非线程安全代码

在客户端、服务器端分别用嗅探器(fiddler , ethereal, tcpdump )确认发包、收包的状况,确认发包正确,服务器HttpRequest接收到的包也正确。故程序出现在内部变量未做到线程同步

4

Apache error_log : [error] server reached MaxClients setting, consider raising the MaxClients setting

在httpd.conf增加:

StartServers 10

MinSpareServers 10

MaxSpareServers 15

ServerLimit 3000

MaxClients 2000

MaxRequestsPerChild 10000

KeepAliveTimeout 30

并重启httpd服务

5

java.lang.OutOfMemoryError: PermGen space、

java.lang.OutOfMemoryError: unable to create new native

调整JVM,增加堆、栈控制等参数。最终

Run.conf:

JAVA_OPTS="-Xms1536m -Xmx1536m -XX:PermSize=512m -XX:MaxPermSize=512m -Xss256k -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dcom.sun.management.jmxremote.port=9999 -Dcom.sun.management.jmxremote.authenticate=false -Dcom.sun.management.jmxremote.ssl=false"

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号