There is an old post by Tim who did extensive benchmarks with Rocket. He 
discusses extensively problems with using ab for testing. I cannot find the 
post unfortunately.

On Wednesday, 3 October 2012 11:18:40 UTC-5, Niphlod wrote:
>
> tested on windows the "hello world" and a complete app's index page, 
> results are quite similar.... in some ways at least on windows seems that 
> having a few threads also if in relatively high concurrency environment 
> lead to faster response times (forget about requests served per second, I'm 
> also talking about new requests served in n seconds). 
>
> My point is: if a normal web-app ships responses in max 1 second (slower 
> would be a pain in the *** for the users navigating to those pages), then 
> having the user wait 5 sec because his request has been queued - because 
> there are a few threads actually serving pages - or having the user wait 7 
> sec because the server is "busy" switching threads equals the user waiting 
> n seconds.
> Tests seems to point to the fact that on this computer, with 1000 
> concurrent requests served by a few threads (down to just one) the users 
> would wait (in average) less than having them served by 10 to 20 threads 
> (and this is the bit getting me a little confused). This happens both on 
> "hello world" super-fast responses and on a complete "index" page (complex 
> db query, some math, a little bit of markup, no session, returns the 
> response (40.2kb of html) in something like 800ms). BTW, as always, the 
> more "real" the app is, the more the gap between tornado and rocket/cherry 
> reduces itself. 
> Motor seems to handle concurrency better, if not "pushed" too high (then 
> it stops responding)
>
> Knowing that the server is holding back the response to the user A:
> - because has put away the request in its queue and forgot about it (it is 
> processing requests coming from B, that requested the page before )
> - because is currently processing A's request within other 20 coming from 
> [B-Z] users
>
> it's fine, but then again "academically" I expected it to behave better 
> with 10 threads than 1.
>
> I'm beginning to think that ab in windows doesn't behave the way it's 
> supposed to, but alas ab.exe is shipped from years within the apache win32 
> build.
>
> PS back in the thread: motor looks good, also on windows, it's just not as 
> stable as rocket or cherrypy.
>
> Il giorno mercoledì 3 ottobre 2012 17:49:56 UTC+2, Massimo Di Pierro ha 
> scritto:
>>
>> Threads in python are slower then single threads on multicore machines 
>> (any modern computer). So 2 threads on 2 cores is almost twice as slow 
>> instead of twice as fast because of the GIL. Yet there are advantages. If a 
>> thread blocks (because it is streaming data or doing a computation), a 
>> multithreaded server is still responsive. A non threaded server can only do 
>> one thing at the same.
>>
>> In some languages on multicore concurrency means speed. In python this is 
>> not true for threads.
>>
>> One can tweak things to make faster benchmarks for simple apps by 
>> serializing all requests but this is not good in a real life scenario where 
>> you need concurrency.
>>
>>

-- 



Reply via email to