如题 node response time 随并发数增加而增加,是否可以有个合理的解释
而且增加是非常明显的。
1个请求时 平均响应时间是 40ms 并发50个请求是 平均响应时间是 1s
这个增长的有点快啊
node是单线程的,因此当一个请求过来时,需要处理完当前请求后才能处理下一个请求 =w= 总之我是这么理解的,楼下可能有高手详细解答
你这个理论只适合于CPU密集的应用。
哪里有排队么?
会不会是数据库那边处理时间变长了呢?
发个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
我怀疑我的代码有问题。