性能测试分享—LoadRunner篇

发表于:2014-1-02 11:55

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

 作者:weiweicao0429    来源:51Testing软件测试网采编

分享:
  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;
  }
32/3<123>
春暖花开更文季,点击参与还有惊喜礼品~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号