Я запускаю сервер на базе Python Flask на Apache/2.4.29 (Ubuntu)
с помощью mod_wsgi
на машине Amazon EC2 Ubuntu t2.micro бесплатного уровня с очень ограниченными ЦП и памятью.
Используя flask, я предоставляю свой API пользователям, и выполнение каждого запроса занимает около 5-6 секунд (моя задача требует интенсивного использования ЦП). Итак, теперь происходит следующее: если кто-то запускает 4-5 запросов за раз, загрузка ЦП увеличивается на 100% и машина останавливается до перезапуска. Я даже не могу получить доступ к журналам.
Поэтому я хочу ограничить одновременный прием только 1 запроса, чтобы он был завершен без каких-либо проблем с процессором (я не возражаю, чтобы другие запросы были отклонены)
Я пробовал несколько вещей:
WSGIDaemonProcess flaskproject threads=1
, но даже после этого обслуживание разрешает несколько запросов. Вот мой файл conf.<VirtualHost *:80 *:443> ServerAdmin webmaster@localhost DocumentRoot /var/www/html WSGIDaemonProcess flaskproject threads=1 WSGIScriptAlias / /var/www/html/flaskproject/app.wsgi <Directory flaskproject> WSGIProcessGroup flaskproject WSGIApplicationGroup %{GLOBAL} Order deny,allow Allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Можно ли ограничить запросы или есть другой обходной путь, чтобы остановить зависание процессора? Я новичок в Apache и не уверен, в чем проблема.
Спасибо!