This is a complex issues that spans different topics: speed,
efficiency, scalability.

I am not aware of any major bottle neck in web2py, execpt of the
database (not the DAL , the actual database) so it is efficiently.
There are many little tricks you can use to speed applications more:
- use connection pooling
- run your app bytecode compiled (press the button)
- move as much code as you can modules instead of models.
- discard sessions unless you they have modified
- store sessions in a memory mapped file

How fast is it (with or without optimizations) depends on the
architecture. Is there a machine that can give you 1000 request/
seconds. I do know. It is possible. On my virtual machine I get about
100.

There are some things that definitively will NOT help:
- a multicore machine. because the python interpreter cannot use
multiple cores efficiently
- a key/value database. This helps with scalability (i.e. run lots of
concurrent servers) but not necessarily speeds up a single server. I
will actually argue most of the map/reduce DB out there are slower
then postresql.

Massimo


On Jul 21, 8:40 pm, Alex Fanjul <alex.fan...@gmail.com> wrote:
> Hello Massimo (all) this days I'm reading about horizontal scale
> architectures, key/value and graphs db's, etc. and the awakening in
> cloud computing enviroment
> In the last reading, I saw "Redit" benchmark of about 50 to 100
> thousands req/sec with standard linux box.
>
> I know those values are due to DB architecture of key/value (and they
> are really incredible), but:
>   -what thing is really limiting 1000 req/sec in web2py?
> cherrypy/apache? mysql/postgres? wscgi/fastcgi? web2pyframework? python?
>   -what do you think would the upper limit (req/sec) be in the better
> production enviroment case (great linux server/s, apache/cherokee?, best
> connection)
>   -As a matter of curiosity, have you ever though in implementing the
> API for any of such databases? Redit? Tokyo? couchDB?
>
> regards,
> alex f
>
> P.S as always i'm sorry for my poor english
>
> El 21/07/2009 15:52, mdipierro escribió:
>
>
>
> > - Are there any large web2py installations that I can quote as an
> > example
>
> > Not that I know and handle>1000 requests/second.
>
> > - How are the issues of caching (say rendered pages) handled? I have
> > done a few Drupal sites and can see the performance effects of caching
> > very clearly. IIRC only Django has caching in the python world?
>
> > If you use multiple installations behind a load balancer I suggest you
> > use the "pound" load balancer to keep sessions sticky. In that case
> > the different processes do not need to share any data.
>
> > - Has anyone done any work with web2py in a cluster (similar to a
> > Tomcat cluster behind mod_jk)? (multiple machines running web2py, the
> > session data sync'd etc. I can put the session info in a shared FS
> > though)
>
> > If you need sessions and you need sessions synced, I suggest you share
> > the sessions folder.
>
> > Massimo
>
> > On Jul 21, 12:20 am, Bottiger<bottig...@gmail.com>  wrote:
>
> >> If it is truly not computationally intensive, and does not even use a
> >> database, it should not be a problem.
>
> >> I have benchmarked Web2Py on the static welcome page to 700 requests/
> >> second with a concurrency level of 50.
>
> >> To increase the level of concurrency (if you have additional CPU
> >> cores), you should increase the number of Web2Py processes.
>
> >> "~ 8000 users, and atleast 1000-2000 simultaneous users."
>
> >> This is not really a large installation if it doesn't use a database.
>
> >> "How are the issues of caching (say rendered pages) handled? I have
> >> done a few Drupal sites and can see the performance effects of caching
> >> very clearly. IIRC only Django has caching in the python world?"
>
> >> Drupal, Django, and Web2Py have equivalent caching mechanisms. Any
> >> external caching mechanism you have seen with Drupal should also be
> >> usable with Web2Py or Django.
>
> >> "I can put the session info in a shared FS though"
>
> >> You can either do that or use a database for sessions.
>
> >> On Jul 20, 8:54 pm, Anand Vaidya<anandvaidya...@gmail.com>  wrote:
>
> >>> Hi
>
> >>> After a couple of web2py projects, I am confident of coding a fairly
> >>> big app in web2py.
>
> >>> My previous projects did not need any database (we had to use
> >>> flatfiles), the new project is also similar. I intend to bypass the
> >>> models etc completely.
>
> >>> The app is likely to be used in a corporate setting with ~ 8000 users,
> >>> and atleast 1000-2000 simultaneous users.
>
> >>> The users authenticate to an LDAP server.
>
> >>> The app is not computationally intensive
>
> >>> It queries another service and displays results
>
> >>> No SQL DB is required
>
> >>> Most likely behind a few Apache 2.x front server
>
> >>> I'd like to know:
>
> >>> - Are there any large web2py installations that I can quote as an
> >>> example
>
> >>> - How are the issues of caching (say rendered pages) handled? I have
> >>> done a few Drupal sites and can see the performance effects of caching
> >>> very clearly. IIRC only Django has caching in the python world?
>
> >>> - Has anyone done any work with web2py in a cluster (similar to a
> >>> Tomcat cluster behind mod_jk)? (multiple machines running web2py, the
> >>> session data sync'd etc. I can put the session info in a shared FS
> >>> though)
>
> >>> Regards
> >>> Anand
>
> --
> Alejandro Fanjul Fdez.
> alex.fan...@gmail.comwww.mhproject.org
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To post to this group, send email to web2py@googlegroups.com
To unsubscribe from this group, send email to 
web2py+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/web2py?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to