我用ab -n 10000 -c 1000对不同configuration的node.js进行了testing,每个都返回stringHello World! 。 结果对我来说似乎很奇怪。
X轴是请求的数量,y是以毫秒为单位的响应时间。
cluster模块的服务器(双核) 第一件事是nginx太慢了,平衡器也是这三者中最差的。 直到1000个请求(比群集慢),它比单独的节点要好。 另一个奇怪的是节点单独有一个恒定的响应时间,直到〜7000(?)。 从约7000个请求开始,群集的响应时间大于节点,这似乎太奇怪了。
你会如何解释这些结果? 我做错了吗(长凳或绘图错误)?

ApacheBench 2.3(1430300),Node.js 0.10.5,nginx 1.4.1。 在Xubuntu上运行13.04 x64。
这是一个解释的问题。 你没有做错什么。 这是我如何解释图。 这是x vs y的分布图,其中:
基于节点请求分配的语句(单独)将是:
但是,当累积分析时,会是:
按照预期,群集configuration将显示比单个节点更快的结果。
对于nginx的结果,处理/负载平衡将会有一个固定的延迟。 看着这个数字,大约是9-10毫秒的延迟,这是预期的。 这并不意味着nginxconfiguration是一个糟糕的执行者。 它确实在30毫秒内返回大多数请求(与其他configuration的差别很小)。
您在Apache Bench中将并发请求数设置为1000,即使单个节点也轻松处理这么多的负载,并不需要太多的负载平衡。 为每个请求提供更多的并发连接/更重的处理将炸毁单个节点的graphics(它会提早提出请求数量较less)。 Nginx牺牲了很less的处理时间,以允许更多的并发请求被处理,同时仍然保持合理的响应时间。