使用Apache Benchmark做压力测试遇上的5个常见问题
2015-10-13 10:25
633 查看
文章转载自:http://mo2g.com/view/50/
这一篇文章主要记录我在使用Apache Benchmark(一下检测ab)做网站压力测试的过程中,遇到的一些问题以及解决办法,方便日后使用。
1)当使用ab做压力测试,执行类似的命令:
提示apr_poll: The timeout specified has expired (70007)或者apr_socket_recv: Connection timed out (110)。
解决方法:添加-k参数,压力测试命令改为“ab -c 10 -n 10000 -k www.xxx.com/”,如果问题依旧,那就得从linux服务器配置着手。向/etc/sysctl.conf配置文件添加下边的设置,主要调整net.ipv4.netfilter.ip_conntrack_max或nf_conntrack_max的值。
2)在用ab测试的时候,只要出现Failed requests(失败的请求),就会出现三种失败的类型统计:Connect、Length、Exception。
Connect:向服务器发送请求失败;服务器连接失败;请求过程连接中断等。
Length:服务器返回的数据长度不一致,一般是对比Content-Length的值。
Exception:与服务器连接过程中发生意外错误。
这里主要说明一下Length,ab会把第一次成功返回的content-length作为基准,如果后面的请求返回的content-length跟第一次的不一样,它就会把这次请求当成是失败了。对于动态类型的网站,每次服务器返回的数据都不一定相同,所以如果ab提示的是Length错误,基本都可以忽略掉。
3)默认情况下,ab没有启用gzip压缩功能,所以压力测试的结果会跟实际情况有很大的偏差。要想让ab使用gzip压缩功能,得添加参数 -H 'Accept-Encoding: gzip'
4)带参数的压力测试示例
5)提示:Benchmarking 127.0.0.1 (be patient)... 使用了与请求的协议不兼容的地址(730047)
如果出现这个问题,那很可能是你使用了apache2.4.1或以上的版本。似乎从2.4.*开始,就使用了ipv6的协议,另一种角度来说,这可能是一个bug,所以检测一下是不是以前把ipv6的相关服务给关了。开始菜单->控制面板->任务管理器->服务->启用IP
Helper。
再检查一下文件C:\Windows\System32\drivers\etc\hosts,添加下边的对应关系。
::1是ipv6中的IP地址,ipv4为127.0.0.1。
如果真是版本缺陷,我还是建议更换低版本的ab来使用。
这一篇文章主要记录我在使用Apache Benchmark(一下检测ab)做网站压力测试的过程中,遇到的一些问题以及解决办法,方便日后使用。
1)当使用ab做压力测试,执行类似的命令:
解决方法:添加-k参数,压力测试命令改为“ab -c 10 -n 10000 -k www.xxx.com/”,如果问题依旧,那就得从linux服务器配置着手。向/etc/sysctl.conf配置文件添加下边的设置,主要调整net.ipv4.netfilter.ip_conntrack_max或nf_conntrack_max的值。
Connect:向服务器发送请求失败;服务器连接失败;请求过程连接中断等。
Length:服务器返回的数据长度不一致,一般是对比Content-Length的值。
Exception:与服务器连接过程中发生意外错误。
这里主要说明一下Length,ab会把第一次成功返回的content-length作为基准,如果后面的请求返回的content-length跟第一次的不一样,它就会把这次请求当成是失败了。对于动态类型的网站,每次服务器返回的数据都不一定相同,所以如果ab提示的是Length错误,基本都可以忽略掉。
3)默认情况下,ab没有启用gzip压缩功能,所以压力测试的结果会跟实际情况有很大的偏差。要想让ab使用gzip压缩功能,得添加参数 -H 'Accept-Encoding: gzip'
如果出现这个问题,那很可能是你使用了apache2.4.1或以上的版本。似乎从2.4.*开始,就使用了ipv6的协议,另一种角度来说,这可能是一个bug,所以检测一下是不是以前把ipv6的相关服务给关了。开始菜单->控制面板->任务管理器->服务->启用IP
Helper。
再检查一下文件C:\Windows\System32\drivers\etc\hosts,添加下边的对应关系。
如果真是版本缺陷,我还是建议更换低版本的ab来使用。
相关文章推荐
- windows下 简单配置PHP + apache +mysql
- Apache Commons Configuration使用入门
- iOS 搭建Apache服务器(10.10系统)
- mac 下apache访问access forbidden
- Deprecated: Function eregi() is deprecated in D:\Apache24\htdocs\processfeedback.php on line 21
- Windows下Apache使用问题总结(持续更新)
- CentOs开启Apache的rewrite_module模块,支持.htaccess
- java.lang.NullPointerException(at org.apache.jsp.loginb_jsp._jspInit(loginb_jsp.java:22))
- java学习——apache commons fileupload实现上传
- 学习Thrift的小认识
- apache和PHP如何整合在一起
- Apache POI 之 初学实战篇 (七) --- 抽取Excel内容
- 在apache上安装gitweb实现浏览器访问git服务器
- CentOS 6.3下源码安装LAMP(Linux+Apache+Mysql+Php)环境
- apache和PHP如何整合在一起
- Linux下搭建Apache环境,执行Apache ab进行网站压力测试
- yum安装Apache Web Server后各个文件存放位置
- 截取web页面访问时间(Apache)
- Max os x 10.10.9 apache无法访问
- linux平台apache启动、关闭、重启的几种方式