Это очень специфическое, но я постараюсь быть краткими:Heroku Широкоэкранного Время отклика Высокой
Мы работаем Django приложения на Heroku . Три сервера:
- тест (1 сеть, 1 сельдерей дино)
- обучение (1 сеть, 1 сельдерей дино)
- прод (2 Интернет, 1 сельдерей дино).
Мы используем Gunicorn с gevents и 4 рабочих на каждом дино.
Мы являемся , испытывая спорадическое высокое время обслуживания. Вот пример из Logentries:
High Response Time:
heroku router - - at=info
method=GET
path="/accounts/login/"
dyno=web.1
connect=1ms
service=6880ms
status=200
bytes=3562
Я уже несколько недель искал это в Интернете. Мы не можем воспроизвести по желанию, но испытываем эти оповещения от 0 до 5 раз в день. Известные точки:
- Происходит на все три приложений (все работает аналогично код)
- Происходит на разных страницах, в том числе простых страниц, такие как 404 и/администратор
- происходит в случайные моменты времени
- Происходит с переменной пропускной способностью. Один из наших экземпляров включает только 3 пользователя в день. Это не связано со спящими динамиками, потому что мы пингом с New Relic, и проблема может возникнуть в середине сессии
- Невозможно воспроизвести по желанию. Я лично столкнулся с этой проблемой. Нажатие на страницу, которая обычно выполняется в 500 мс, вызвала 30-секундную задержку и, наконец, экран ошибки приложения из таймаута 304 Heroku
- Высокое время отклика варьируется от 5000 мс до 30000 мс.
- Новая реликвия не указывает на конкретную проблему. Вот последние несколько сделок и раз:
- RegexURLResolver.resolve
4,270ms
- SessionMiddleware.process_request
2,750ms
- Рендер логин.HTML
1,230ms
- WSGIHandler
1,390ms
- выше простые звонки и обычно не принимают близко то количество времени
- RegexURLResolver.resolve
То, что я сузили его до:
This article on Gunicorn and slow clients- Я видел, как эта проблема случается с медленными клиентами, но также и в нашем офисе, где у нас есть оптоволоконная связь.
GEvent и асинхронные рабочие не играют красиво- Мы перешли на gunicorn синхронизации рабочих и проблема все еще сохраняется.
- Gunicorn рабочий тайм-аут
- Вполне возможно, что рабочие как-то держится, живы в нулевом состоянии.
Недостаточные работники/динамометрические стенды- Нет признаков CPU/памяти/дб и чрезмерной нагрузки New Relic не показывает никаких признаков DB задержки
- Шумные Соседи
- Среди моих многочисленных писем с Heroku, представитель службы поддержки упомянул, по крайней мере, один из моих длительных запросов был вызван шумным соседом, но не был convi Это было проблемой.
Subdomain 301- Запросы идут через хорошо, но застрять в случайном порядке применения.
динамометрические стенды перезапуск- Если бы это было так, то многие пользователи будут затронуты. Кроме того, я вижу, что наши динамики не перезапускались недавно.
- Heroku маршрутизации/выпуска услуг
- Вполне возможно, что сервис Heroku меньше, чем рекламируемые, и это просто недостаток использования их службы.
Мы с этим вопросом в течение последних нескольких месяцев, но теперь, когда мы сворачиваем это должно быть исправлено.Любые идеи были бы очень благодарны, поскольку я исчерпал почти все ссылки SO или Google.
Это похоже на хороший вопрос, но может получить лучшие ответы на [serverfault] (http://serverfault.com/) – jedwards
@jedwards спасибо, но пользователь там прокомментировал, что я должен переместить его в SO :) – grokpot
oh man - Я не думаю, что это необоснованно иметь его на обоих. Похоже, что это может быть проблема программирования или развертывания - один сайт специализируется на каждом. – jedwards