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

    做了一个简单的nginx集群,用nginx 1.0.3做反向代理,后端放两个tomcat,在测试的时候发现了两个问题:
    1,调用ab的时候,当指定的测试次数过多时,会报一个“apr_poll: The timeout specified has expired (70007)”的错误,在我的机器上,这个次数大约是33000多次,搜索了一下,参考 这个帖子, 调用ab加上了-k参数,果然发起50000次请求也不会出错了,但是测试发起70000次请求时还是出现了同样的错误,不知道如果想发起更多的请求到底该怎么办。StackExchange上 有个帖子提到可以修改操作系统的一些参数,有空的时候再试一下吧。

    2,分别访问两个tomcat,发50000次请求都能全部成功,但是如果是访问nginx,就基本上有50%的请求会失败,比如我发50000次请求到nginx,Failed requests就会有25000个左右,一开始还以为是nginx不能应付这么多的请求,但是调整了nginx的worker_processes和worker_connections之后,发现还是同样的失败率,发1000个请求都会有500个左右的失败,上网搜了一下,在 这个帖子里找到了答案,ab会把第一次成功返回的content-length作为基准,如果后面的请求返回的content-length跟第一次的不一样,它就会把这次请求当成是失败了。按照这上面的说法,把访问的url从servlet改成一张图片,果然Failed requests就是0了。

猜你喜欢

转载自swordinhand.iteye.com/blog/1133107