Мое приложение в django
с gunicorn
, и я новичок в gunicorn
. Мое приложение сильно загружено с помощью операций ввода-вывода, а не столько памяти и ЦП, сколько поток должен сохранять или обслуживать большой файл (от нескольких МБ до нескольких ГБ) из хранилища. В настоящее время из-за этого рабочие заканчиваются, в то время как нет нагрузки на процессор или память или даже на жесткий диск. По умолчанию есть файл конфигурации для gunicorn, который выглядит следующим образом:
import os
daemon = True
workers = 5
# default localhost:8000
bind = "127.0.0.1:8000"
# Pid
pids_dir = '/opt/pids'
pidfile = os.path.join(pids_dir, 'app.pid')
# for file upload, we need a longer timeout value (default is only 30s, too short)
timeout = 7200
limit_request_line = 8190
Я не уверен, как настроить рабочие и потоки и т. Д. c для моей рабочей нагрузки. позвольте мне предоставить более подробную информацию:
- Мы запускаем «несколько виртуальных машин» по 2 ЦП / 8 ГБ ОЗУ.
- python - это 2,7, мы находимся на пути к обновлению до 3,7, но на данный момент это 2.7
- Я уже пытался добавить
threads
с другими значениями (от 1 до 6), но это, похоже, не работает. - Трафик c в приложении в общем, сотни пользователей онлайн в любое время и большую часть 100 Мбит / с в большинстве случаев.
Может кто-нибудь помочь объяснить, что я могу сделать?
РЕДАКТИРОВАТЬ1: пытался изменить на Gevent, но не знаю, как это сделать. после установки gevent через pip:
Apr 25 07:31:33 web-app1 app.sh[16179]: Failed to read config file: /opt/app/conf/gunicorn.conf
Apr 25 07:31:33 web-app1 app.sh[16179]: Traceback (most recent call last):
Apr 25 07:31:33 web-app1 app.sh[16179]: File "/opt/app-pro-server-7.0.13/app/thirdpart/gunicorn-19.8.1-py2.7.egg
Apr 25 07:31:33 web-app1 app.sh[16179]: execfile_(filename, cfg, cfg)
Apr 25 07:31:33 web-app1 app.sh[16179]: File "/opt/app-pro-server-7.0.13/app/thirdpart/gunicorn-19.8.1-py2.7.egg
Apr 25 07:31:33 web-app1 app.sh[16179]: return execfile(fname, *args)
Apr 25 07:31:33 web-app1 app.sh[16179]: File "/opt/conf/gunicorn.conf", line 5
Apr 25 07:31:33 web-app1 app.sh[16179]: worker-class = gevent
Apr 25 07:31:33 web-app1 app.sh[16179]: ^
Apr 25 07:31:33 web-app1 app.sh[16179]: SyntaxError: invalid syntax
Apr 25 07:31:38 web-app1 app.sh[16179]: Error:App failed to start