node.js服务器上的Apachebench在〜30个请求后返回“apr_poll:指定的超时已过期(70007)”

我刚刚开始使用node.js,并使用ab进行一些实验性负载testing,在约30个请求左右返回错误。

我发现其他页面显示比我更好的并发数字比如:http: //zgadzaj.com/benchmarking-nodejs-basic-performance-tests-against-apache-php

是否有一些关键的服务器configuration设置需要完成这些数字?

我在上面看过内存,在运行ab的同时我仍然可以看到大量的可用内存,也看到了mongostat,而且看不到任何看起来可疑的东西。

我正在运行的命令,错误是:

ab -k -n 100 -c 10 postrockandbeyond.com/ This is ApacheBench, Version 2.0.41-dev <$Revision: 1.121.2.12 $> apache-2.0 Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Copyright (c) 2006 The Apache Software Foundation, http://www.apache.org/ Benchmarking postrockandbeyond.com (be patient)...apr_poll: The timeout specified has expired (70007) Total of 32 requests completed 

有没有人有任何build议,我应该看看,可能是造成这种情况? 我在osx狮子上运行它,但也运行相同的结果在服务器上的相同的命令。

编辑:我最终解决了这个问题。 我正在使用TTAPI,它通过websockets连接到turntable.fm。 在主页上,我连接了每一个请求。 所以发生的事情是,经过一定的连接后,一切都会崩溃。 如果遇到同样的问题,请检查每个请求是否正在处理外部服务。

根据这个博客文章 ,这是因为Apache的工作台做了HTTP/1.0请求,导致节点closures连接,从节点0.6+。

我不知道为什么; 它似乎有点像节点错误。

无论如何,简短的答案是使用别的东西。 我一直在使用httperf ,似乎更好反正。