node response time 随并发数增加而增加,是否可以有个合理的解释 - CNode技术社区

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

如题 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 

我怀疑我的代码有问题。

回到顶部

AltStyle によって変換されたページ (->オリジナル) /