欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-01 16:26:22
...
    做了一个简单的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了。