我刚刚开始使用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 ,似乎更好反正。