Flask на Heroku: request.form невероятно медленный с большими данными POST?

Я запускаю приложение Flask на Heroku, используя gunicorn с работниками eventlet. Конкретный маршрут в моем приложении часто получает данные POST (x-www-form-urlencoded) с некоторыми довольно короткими полями - порядка 500 КБ максимум.

Это прекрасно работает при локальном запуске, но в Heroku запросы к этому маршруту выполняются где-то от 5 до 30 секунд - и почти 100% времени уходит на первый доступ к request.form:

t = time.time()
action = str(request.form['action'])
dt = time.time() - t  # Often 10 seconds or more!

Это подтверждается также медленной трассировкой запросов Newrelic. Здесь или там есть несколько миллисекунд для операций с базой данных, а затем огромный кусок времени в коде Python, который, очевидно, тратится на ожидание некоторого ввода-вывода, поскольку сообщаемое время ЦП обычно меньше миллисекунды.

Я был совершенно не в состоянии воспроизвести это в локальной среде, используя ту же настройку gunicorn / eventlet, которую я использую в производстве. Даже встроенный отладочный сервер WSGI молниеносно реагирует на эти запросы.

Кто-нибудь знает, что может быть не так? Это проблема с Flask, или мне нужно связаться со службой поддержки Heroku?

Ответы на вопрос(1)

Ваш ответ на вопрос