Hi Christian, thanks for your replay. I gave a quick look at cherryPy
too, but I had the impression it wasn't enought to be used in a real
world contest. What about performances? Can I safely consider it to
develop an Intranet/Extranet? My main concern is with scalability. What
will happend if my user-base will grow? What if I had to add web
services interface (say XML-RPC or SOAP) to my application? Can I do it
in a second time without spending too much time/money?
Far from true
A few data points (taken from
http://www.cherrypy.org/wiki/CherryPySpeed):
- In 99% of the cases, the answer is "this depends on your actual
application code, not on CherryPy itself".
- CherryPy averages 429 requests/second, in threaded mode (which
includes the penalty for thread-switching), in a Pentium 1.6 Ghz, 1GB
RAM, under Windows XP 2. The test was run using ab, the load testing
tool from the apache project.
- In practice, we found it easier to exceed available bandwidth than
to exceed CherryPy's limits. With something as low as 200 requests/s
one can get a few MB/s of throughput (that's measurable, but I don't
have the numbers for this test; but to the math yourself, for a 10Kb
page...). Of course, Intranet sites do not suffer from this problem,
but the userbase is usually limited.
- The worst case scenario is when one have lots of small objects to
serve. This usually means static content (icons & small gif files),
and can be greatly accelerated by running CherryPy under a caching
frontend - either Apache, or even squid in web acceleration mode work
just fine.
While you are at it, check also this page:
http://www.cherrypy.org/wiki/CherryPyProductionSetup
--
Carlos Ribeiro
Consultoria em Projetos
blog:
http://rascunhosrotos.blogspot.com
blog:
http://pythonnotes.blogspot.com
mail: (e-mail address removed)
mail: (e-mail address removed)