性能测试分享?LoadRunner篇
作者:网络转载 发布时间:[ 2014/1/3 10:29:11 ] 推荐标签:性能测试 LoadRunner
7)接下来是在场景里执行了。点击tools---create controller scenario。进入场景。并发10个用户执行5分钟。同时监控tomcat的日志。
在并发的情况下,出现了一些问题,下面针对这些问题给出解决方案。
遇到的问题1、在并发执行1分钟后,开始有报错,主要的报错是解密失败,同时tomcat挂了,不能在接受新的请求。
找到问题根源:通过监控tomcat日志,发现后期有很多的报错日志是文件打开过多。
严重: Socket accept failed java.net.SocketException: 打开的文件过多 at java.net.PlainSocketImpl.socketAccept(Native Method) at java.net.PlainSocketImpl.accept(PlainSocketImpl.java:408) at java.net.ServerSocket.implAccept(ServerSocket.java:462) at java.net.ServerSocket.accept(ServerSocket.java:430) at org.apache.tomcat.util.net.DefaultServerSocketFactory.acceptSocket(DefaultServerSocketFactory.java:61) at org.apache.tomcat.util.net.JIoEndpoint$Acceptor.run(JIoEndpoint.java:352) at java.lang.Thread.run(Thread.java:662) 2013-5-16 11:38:46 org.apache.tomcat.util.net.JIoEndpoint$Acceptor run 2013-05-16 11:38:44,974 INFO [DefaultRequestDirector.java:586] - I/O exception (java.net.SocketException) caught when connecting to the target host: 打开的文件过多 2013-05-16 11:38:44,974 ERROR [CreditPay.java:167] - 信用卡支付失败 com.yibao.payapi.client.RequestApiException: 请求服务未正常返回[statuscode:404, text:<html><head><title>Apache Tomcat/6.0.29 -
解决方案:由于建立SOCKET会占用一个系统句柄,效果类似于打开了一个文件。LINUX默认的大文件打开个数是1024(可能不同内核版本不一样),所以如果并发太多连接时会报错。需要修改文件打开数设置。
当前设置大打开文件数可以通过如下命令查看。 ulimit -n
这个数字说明了一个普通用户能够在一个单独会话中所能打开大的文件数目。注意。如果是root,以下操作不能使ulimit -n的输出增加。因为用户root用户不受这个ulimit限制。只有普通用户才会受这个限制。
为了提高大打开文件数到默认值1024以上, 需要在系统上修改2个地方。 在这个案例中, 我们将大打开文件数增加到为65535(系统部给出的建议)。 所有的步骤需要root用户操作。
1、/etc/pam.d/login 添加 session required /lib/security/pam_limits.so
2. 按照大打开文件数量的需求设置系统, 并且通过检查/proc/sys/fs/file-max文件来确认大打开文件数已经被正确设置。 echo 65535 > /proc/sys/fs/file-max
3、在/etc/security/limits.conf文件中设置大打开文件数,添加2行内容:
* soft nofile 4096 * hard nofile 4096
解释:下面是一行提示
#<domain> <type> <item> <value>添加如下这行。 * - nofile 2048 这行设置了每个用户的默认打开文件数为2048。 注意"nofile"项有两个可能的限制措施。 是<type>项下的hard和soft。 要使修改过得大打开文件数生效,必须对这两种限制进行设定。 如果使用"-"字符设定<type>, 则hard和soft设定会同时被设定。
硬限制表明soft限制中所能设定的大值。 soft限制指的是当前系统生效的设置值。 hard限制值可以被普通用户降低。但是不能增加。 soft限制不能设置的比hard限制更高。 只有root用户才能够增加hard限制值。
遇到的问题2:在虚拟用户少的时候并发没有再出现文件打开过多的错误,在并发量达到30,运行时间达到3分钟的时候,有报错:HTTP-500
找到问题根源:通过查看tomcat和程序的日志,看到有大量的http-500的错误,是nginx已经拒绝了请求。
解决方案:修改nginx配置文件
vi /etc/nginx/nginx.conf
events {
worker_connections 1024;
}
调整为
events {
worker_connections 65535;
}
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11