Назад | Перейти на главную страницу

Побочные эффекты установки max-запросов в конфигурации uwsgi

Чтобы попытаться уменьшить использование памяти на нашем веб-сервере, мне пришлось установить для свойства max-requests в моей конфигурации uwsgi значение 50.

Какие у этого недостатки?

У нас есть 10 рабочих на сайте, и похоже, что рабочие перерабатываются каждые 20 минут или около того, но, по крайней мере, пока, похоже, что это дает желаемый эффект - мы не приближаемся к нашему пределу памяти.

Я немного обеспокоен тем, что это может вызвать побочные эффекты для пользователей, но я не уверен. Любые идеи?

Насколько я знаю, единственный недостаток настройки max-requests заключается в том, что при запуске приложений, которые загружаются по первому запросу к серверу вместо инициализации воркера (например, Django), каждый раз, когда воркер достигает предела максимального количества запросов, следующий запрос, на который он отвечает, будет иметь задержку. Если эта задержка будет короткой или длительной, это зависит от характеристик вашего сервера и сложности вашего приложения.

Что-то, что я испытал при использовании максимальных запросов, заключается в том, что, поскольку запросы распределялись между воркерами поровну, все мои воркеры обрабатывались одновременно, все они одновременно достигли максимальных запросов. Это может быть недостатком, если ваше приложение загружается слишком долго.

Если вы хотите уменьшить объем памяти, используемый uWSGI, вам следует учитывать:

  • Параметры настройки перезагрузка по RSS и / или перезагружать как. Они позволяют вам установить максимальный объем памяти, который может использовать рабочий, если он достигает максимума, он перерабатывается.

  • Если ваше приложение потокобезопасно, попробуйте использовать потоки и сокращение количества рабочих. Этот подход использует меньше памяти, но необходимо провести некоторое тестирование.