Мой сервер - это Linode с 768 МБ ОЗУ. На нем находится около 8 небольших сайтов Django с низким трафиком, работающих на Nginx, Supervisor и Gunicorn. В настоящее время у каждого сайта есть собственная учетная запись пользователя Linux, а файлы сайта находятся в домашнем каталоге пользователя. У каждого пользователя есть процесс супервизора разработки и производства, который запускает Gunicorn с от 1 до 4 рабочих.
Мы небольшая консалтинговая фирма, и в ближайшем будущем мы будем просто добавлять на сервер все больше и больше небольших сайтов Django с низким трафиком. Когда я смотрю наверх, у меня работает куча процессов Gunicorn, а оперативная память почти полностью израсходована. Какое-то время у нас было только 512 МБ ОЗУ, и она была почти полностью израсходована, но когда мы добавили больше ОЗУ, процессы Gunicorn только заняли больше ОЗУ.
Есть ли хороший способ оптимизировать этот сервер для как можно большего количества сайтов Django с низким трафиком (например, 1000 посещений в месяц)? Я выбрал настройку Nginx вместо Apache, потому что считал, что это лучше для системных ресурсов, но похоже, что текущая настройка не очень эффективно использует ресурсы.
Честно говоря, не беспокойтесь, если у вас нет плохой производительности.
В последнее время в системе управления памятью Linux используется множество продуктов, которые не освобождают память для мониторинга, потому что данные кэшируются и готовы к гораздо более быстрому доступу в следующий раз, когда это потребуется. Linux управляет памятью так, что если процессу нужно больше, то она будет выделена соответствующим образом, очищая кеш там, где это необходимо.
В общем, если у вас мало свопинга, все хорошо.