Clay Baenziger wrote:
> Hi all,
>     I ran a few tests against the default AI configured Apache webserver 
> and the default AI configured CherryPy webserver. My tests were to 
> download default.xml or solaris.zlib and then to either do it 100 times 
> one after a time, or 5 times per client with 10 clients running 
> simultaneously.
>     I've put a spreadsheet with the results at:
> http://blogs.sun.com/clayb/resource/Webserver+Data.ods
>     Interestingly, CherryPy seems to have performed on par with Apache 
> and seemed to come more into line with Apache as file size got bigger. 
> However, these two tests were rather limited to make such 
> generalizations but they are a base.
> 
> My tests were done by pulling down a default.xml file (from 
> machine:5555/var/ai/clay_ai_sparc/default.xml for Apache -- I copied it 
> there -- and from machine:46501/manifests/default.xml for CherryPy). The 
> other test was to download solaris.zlib (from 
> machine:5555/var/ai/clay_ai_sparc/solaris.zlib and from 
> machine:46501/ai-files/solaris.zlib -- I copied it to 
> /var/ai/46501/AI_files). I then used a single machine on a GigE link 
> with httping to do the connect and timing tests. Actual httping commands 
> are included in the spreadsheet.

I think you'll find that the performance of cherrypy degrades 
significantly once the number of *synchronous* requests exceeds the 
number of threads that you start the cherrypy server with.  Apache can 
also multiplex requests if I remember correctly, so you'll want to try 
your performance test again using at least double the number of threads 
as the number of synchronous requests to perform.

Note that Apache can grow its thread pool to accommodate demand and then 
gracefully kill of children as they age, cherrypy cannot.

Also, how are you serving these files with cherrypy?  Is it using the 
cherrypy.lib.static.serve_file functionality?

Cheers,
-- 
Shawn Walker

Reply via email to