> My web2py application is running on Webfaction's servers over uwsgi/nginx.
> When the servers are started, four instances of nginx and four instances
> of
> uwsgi are spawned, with each nginx instance taking up ~18M of RAM, and
> each
> nginx instance taking up a couple of M. Accessing any part of the page
> (i.e. clicking a menu item) adds about 30M to one of the uwsgi instances.
> Clicking a menu item again can add between 2 and 30 M to any of the uwsgi
> instances (it will be 30 M if nothing has yet been added to the RAM usage
> of that particular instance). This happens until my memory limit (256 M)
> is
> exceeded. I think I've mitigated the behavior somewhat by moving some
> things from models to modules, and by serving static content separately,
> but I think my memory usage is still quite excessive. Is this normal
> behavior?
>
30-40 MB per worker is pretty normal.
To gain memory you can move to multithreading:
master = true
processes = 2
threads = 2
thread-stacksize = 512
should be good enough
Monitoring memory is a good thing, use --reload-on-rss 80 to avoid your
app growing up
--
Roberto De Ioris
http://unbit.it