node response time 随并发数增加而增加,是否可以有个合理的解释
 发布于 13 年前  作者 guilin  6867 次预览  最后一次回复是 13 年前  来自  

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

而且增加是非常明显的。

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

这个增长的有点快啊

13 回复
italkboy

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

darklowly

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

pengchun

哪里有排队么?

imzshh

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

guilin

@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)

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

asoedarren

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

darklowly

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

sumory

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

sumory

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

huangdh3

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

fxsjy

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

pengchun

是官方的那个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  
guilin

我怀疑我的代码有问题。