Рекомендуемые настройки для uwsgi


У меня есть приложение mysql + django + uwsgi + nginx, и недавно у меня возникли некоторые проблемы с конфигурацией uwsgi по умолчанию, поэтому я хочу перенастроить его, но я понятия не имею, какие рекомендуемые значения.

Другая проблема заключается в том, что я не смог найти настройки по умолчанию, которые использует uwsgi, и это очень затрудняет отладку.

Используя конфигурацию по умолчанию, сайт был слишком медленным при реальном трафике (слишком много запросов застряло в ожидании сокета uwsgi). Поэтому я использовал конфигурация из какого-то учебника, и он имел cpu-affinity=1 и processes=4, которые исправили проблему. Конфигурация также имела limit-as=512 , и теперь приложение получает MemoryErrors, поэтому я думаю, что 512 МБ недостаточно.

Мои вопросы:

  1. Как я могу определить рекомендуемые параметры? Мне не нужно, чтобы он был супер совершенным, просто чтобы обрабатывать трафик по пути спуска и не врезаться из-за ошибок памяти и т. д. В частности, рекомендуемое значение для limit-as - это то, что мне нужно больше всего. сейчас.

  2. Каковы значения параметров uwsgi по умолчанию?

Спасибо!

1 2

1 ответ:

Обычно мы запускаем довольно маленькие приложения... Редко более 2000 запросов в минуту. Но в любом случае его трудно сравнить с различными приложениями. Вот что мы используем на производстве:

Рекомендация по документации

Haharakiri = 20 # respawn processes taking more than 20 seconds
limit-as = 256 # limit the project to 256 MB
max-requests = 5000 # respawn processes after serving 5000 requests
daemonize = /var/log/uwsgi/yourproject.log # background the process & log

Uwsgi_conf.yml

processes: 4
threads: 4


# This part might be important too, that way you limit the log file to 200 MB and 
# rotate it once
log-maxsize : 200000000
log-backupname : /var/log/uwsgi/yourproject_backup.log

Мы используем следующий проект для развертывания и настройки наших приложений django. (Никакой документации здесь нет, извините... Просто использовал его для внутренне)

Https://github.com/iterativ/deployit/blob/ubuntu1604/deployit/fabrichelper/fabric_templates/uwsgi.yaml

Как вы можете сказать, если вы настроили его правильно... ? Поскольку это во многом зависит от вашего приложения, я бы рекомендовал использовать некоторые инструменты мониторинга, такие как newrelic.com а затем проанализируйте его.