node response time 随并发数增加而增加,是否可以有个合理的解释
发布于 12 年前 作者 guilin 6153 次浏览 最后一次编辑是 8 年前

如题 node response time 随并发数增加而增加,是否可以有个合理的解释

而且增加是非常明显的。

1个请求时 平均响应时间是 40ms 并发50个请求是 平均响应时间是 1s

这个增长的有点快啊

13 回复

node是单线程的,因此当一个请求过来时,需要处理完当前请求后才能处理下一个请求 =w= 总之我是这么理解的,楼下可能有高手详细解答

你这个理论只适合于CPU密集的应用。

哪里有排队么?

会不会是数据库那边处理时间变长了呢?

@pengchun @imzshh @darklowly

发个helloworld的测试数据吧 10 并发 response: 0ms(min) 19ms(max) 1ms(avg)

30 并发 response: 2ms(min) 20ms(max) 4ms(avg)

100 并发 response: 7ms(min) 43ms(max) 15ms(avg)

1000 并发 response: 6ms(min) 212ms(max) 167ms(avg)

平均响应时间与并发数基本成正比

nodejs并非是单线程 要视你的CPU数而定

应该是排队了。或者某个代码路径有同步问题。

啥啥啥?是单进程的,跟CPU有必然关系?

代码贴出来看一下吧,不应该啊,我用siege测过以前的程序,貌似没这么夸张啊。

我也用siege做过测试,在100多个以上并发的情况下,也不会出现超过1s的响应时间!应该是代码有问题!

并发度和平均响应时间就是线性相关的啊,可以参考“little’s law"

是官方的那个hello world么?我拿siege压下来的结果:

      Date & Time,  Trans,  Elap Time,  Data Trans,  Resp Time,  Trans Rate,  Throughput,  Concurrent,    OKAY,   Failed
2012-08-27 13:53:47,  46084,       9.32,           0,       0.00,     4944.64,        0.00,        9.87,   46084,       0   
2012-08-27 14:08:32,  41412,       9.06,           0,       0.01,     4570.86,        0.00,       29.89,   41412,       0   
2012-08-27 14:09:04,  47838,       9.96,           0,       0.02,     4803.01,        0.00,       99.66,   47839,       0   
2012-08-27 14:09:21,  40071,       9.32,           0,       0.12,     4299.46,        0.00,      525.57,   40071,       0  

我怀疑我的代码有问题。

回到顶部