账户管家系统改造性能测试总结和性能瓶颈分析
通过账户管家系统改造项目,下面我就把个人工作中的体会整理出来,希望能对大家在做C/S架构系统的性能测试有所帮助。
1.分析原则:
1.1具体问题具体分析(这是由于不同的应用系统,不同的测试目的,不同的性能关注点)
1.2查找瓶颈时按以下顺序,由易到难。
服务器硬件瓶颈-〉网络瓶颈(对局域网,可以不考虑)-〉服务器操作系统,瓶颈(参数配置)-〉中间件瓶颈(参数配置,数据库,web服务器等)-〉应用瓶颈(SQL语句、数据库设计、业务逻辑、算法等)
注:以上过程并不是每个分析中都需要的,要根据测试目的和要求来确定分析的深度。对一些要求低的,我们分析到应用系统在将来大的负载压力(并发用户数、数据量)下,系统的硬件瓶颈在哪儿就够了。
1.3 分段排除法 很有效
分析的信息来源:
1.3.1 根据场景运行过程中的错误提示信息
1.3.2 根据测试结果收集到的监控指标数据
一.错误提示分析
二.分析实例:
1 “Action.c(16): Error : 'Timeout expired while trying to <connection_info> connection. Error code : 9017 ”
分析:loadrunner连接前置超时:(多并发数时前置处理不过来时报这个错误,但是如果不看后台数据库,当前置没有报这个错误时会被假象所迷惑,就是当前置处理完后,并没有把相应的交易发送到后台,而是处理完就返回了)
2 Action.c(90): Error : socket0 - Connection refused. Error code : 10061.
分析:应用服应用不在运行状态中
(原因:后台服务器日志文件容量达到2G而造成服务器应用不在运行状态),不过还有其他原因也会引起这个错误
如:1.主机地址和端口错误,确定连接了正确的端口和主机地址,如果有网络分析工具,你可以检查一下,端口和主机是不是你要连接的。
2.服务器应用没有运行,检查服务器的应用是不是在运行中,上面就属于这种情况,因为日志太大而服务中断。
3.端口是否被占用,检查服务器的监听端口。
4.如果此问题出现在负载测试中,可能是服务器的socket队列不足了,要解决的话尝试如下:
A:修改服务器的应用以处理更多的请求requests.
B:手工输入如下的相似代码:
while (lrs_create_socket("socket2", "TCP", "RemoteHost=LDNTAS42:671", LrsLastArg) == 10061) ;
脚本将继续执行直到socket