If web2py does not leak memory (it did sometimes on development
versions) the memory overhead is not very high compared to threads.
The supplemental physical memory that each new web2py process, other
than the parent process, requires is only a fraction of the virtual
memory each process sees. This is due to the fact that each process
shares those slices of memory that does not update (copy on write).
The framework code is loaded in large part before spawing child
processes so that part is mostly shared.
Probably web2py's WSGI application can be improved to share more data
among processes, but it does a good job already.
Performance Tip:
It is very important to keep an eye on the memory usage to set a
proper limit on the number of web2py processes: to have a good
responsiveness it's better to have fewer processes than having their
memory pages swapped. It is also important to check that the
applications are compiled and that they do not use memory improperly
such retaining large datasets in session, cache; with the DAL use
limitby whenever possible.
mic
2012/6/18 Massimo Di Pierro <
massimo....@gmail.com>: