I have about a dozen small Django sites I want to run using Nginx and uWSGI. They are on a 4-core server with 8 gigs of ram. Should each site be configured on its own socket and how can I control the total number of processes across all instances of uWSGI? If each up app has 30 processes, how can I prevent running out of ram?
add --limit-as option to each instance and limit the number of requests each process will manage after being restarted (-R 1000 is normally a good value, this will mitigate leaks)
30 processes per app looks a bit too much for me, start with 8 (ncpu*2) and increase them if you need it
If you want, you can use the development tree (take it via mercurial) and use jailing features:
http://projects.unbit.it/uwsgi/wiki/UseCgroups
http://projects.unbit.it/uwsgi/wiki/LinuxNamespace