У меня около дюжины небольших сайтов Django, которые я хочу запустить с помощью Nginx и uWSGI. Они стоят на 4-х ядерном сервере с 8 гигабайтами оперативной памяти. Должен ли каждый сайт быть настроен на собственный сокет и как я могу контролировать общее количество процессов во всех экземплярах uWSGI? Если каждое запущенное приложение имеет 30 процессов, как я могу предотвратить исчерпание оперативной памяти?
добавьте параметр --limit-as для каждого экземпляра и ограничьте количество запросов, которые каждый процесс будет обрабатывать после перезапуска (-R 1000 обычно хорошее значение, это уменьшит утечки)
30 процессов на приложение кажутся мне слишком много, начните с 8 (ncpu * 2) и увеличьте их, если вам это нужно
Если хотите, вы можете использовать дерево разработки (взять его через mercurial) и использовать функции тюрьмы: