Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4185894
  • 博文数量: 601
  • 博客积分: 15410
  • 博客等级: 上将
  • 技术积分: 6884
  • 用 户 组: 普通用户
  • 注册时间: 2007-05-16 08:11
个人简介

独学而无友,则孤陋而寡闻!

文章分类

全部博文(601)

文章存档

2020年(1)

2018年(4)

2017年(7)

2016年(42)

2015年(25)

2014年(15)

2013年(36)

2012年(46)

2011年(117)

2010年(148)

2009年(82)

2008年(37)

2007年(41)

分类: 系统运维

2015-05-21 16:53:16

    用apache自带的ab工具做网站的压力测试时,一旦连接数过多,就会产生一个错误:


  1. apr_socket_recv: Connection reset by peer
   然后ab就会自动退出。

 

百度后的结果,大多数都是抄了一遍文章,让修改源代码再重新编译,也有人建议使用maxfiles,但最后都没有从根本上解决问题。

 

实际上,这是ab的一个特性,遇到严重的网络错误后,就会退出测试,因为这种错误说明网络存在其他问题,但是只要服务器返回数据,哪怕是数据不对,ab也会继续下去,但是会记录数据长度不对。

但事实上是:在高压力下,偶尔的一两个请求被阻止,这是一个正常的情况,特别是有防火墙或入侵检测系统的情况下,这种事情会经常发生。

那么ab有没有参数来跳过这种错误,使测试继续下去呢?

 

其实仔细看man ab,会发现ab本身就有这个参数:


点击(此处)折叠或打开

  1. ……

  2.        -r Don't exit on socket receive errors.

  3. ……


-r参数就是“在遇到socket接收错误后,不退出测试”

 

所以,解决ab遇到Connection reset by peer错误就自动退出的问题非常简单,加一个-r参数就好。











另发于:
阅读(14206) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~