用ab测试nginx集群遇到的问题

做了一个简单的nginx集群,用nginx 1.0.3做反向代理,后端放两个tomcat,在测试的时候发现了两个问题:
1,调用ab的时候,当指定的测试次数过多时,会报一个“apr_poll: The timeout specified has expired (70007)”的错误,在我的机器上,这个次数大约是33000多次,搜索了一下,参考[url="http://blog.lolyco.com/sean/2009/11/25/ab-apache-bench-hanging-with-k-keep-alive-switch/"]这个帖子[/url], 调用ab加上了-k参数,果然发起50000次请求也不会出错了,但是测试发起70000次请求时还是出现了同样的错误,不知道如果想发起更多的请求到底该怎么办。StackExchange上[url="http://serverfault.com/questions/10852/what-limits-the-maximum-number-of-connections-on-a-linux-server"]有个帖子[/url]提到可以修改操作系统的一些参数,有空的时候再试一下吧。

2,分别访问两个tomcat,发50000次请求都能全部成功,但是如果是访问nginx,就基本上有50%的请求会失败,比如我发50000次请求到nginx,Failed requests就会有25000个左右,一开始还以为是nginx不能应付这么多的请求,但是调整了nginx的worker_processes和worker_connections之后,发现还是同样的失败率,发1000个请求都会有500个左右的失败,上网搜了一下,在[url="http://web.archiveorange.com/archive/v/yKUXMyLCk0B1y06z8tPW"]这个帖子[/url]里找到了答案,ab会把第一次成功返回的content-length作为基准,如果后面的请求返回的content-length跟第一次的不一样,它就会把这次请求当成是失败了。按照这上面的说法,把访问的url从servlet改成一张图片,果然Failed requests就是0了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值