#django #performance #amazon-ec2 #bandwidth
#джанго #Производительность #amazon-ec2 #пропускная способность
Вопрос:
У меня настроен экземпляр EC2 m4.large с apache и django. Статические файлы веб-сайта загружаются нормально (apache обрабатывает / статическую папку), но динамические данные, генерируемые django, передаются крайне медленно. Получение строки в формате JSON в кодировке 500 КБ может занять до 8 секунд (попадание в кэш, 2 мс для генерации возвращаемого значения на самом сервере). Я создал тестовое представление, и оно показало то же поведение.
def transfer_test(request):
return HttpResponse("."*1000000) # Takes 12-15 seconds to download
# Static file with the same contents downloads in less than a second
Что может быть причиной этого замедления? У меня нет настроенного промежуточного программного обеспечения (кроме стандартного). Поведение согласовано в сетях и браузерах, я единственный, кто отправляет запросы на сервер. При запуске сервера django на локальном компьютере этого не происходит.
Редактировать: Вот отчет хронологии Chrome для загружаемых данных объемом 512 КБ. Данные идентичны.
Django отправляет файл чуть менее чем за 7 секунд, в то время как apache отправляет его менее чем за 1,2:
Комментарии:
1. можете ли вы использовать Chrome network View, чтобы получить файл и показать результаты?
2. Работает ли он на вашем локальном сервере разработки? Попробуйте запустить с помощью debug-toolbar
3. Когда вы тестируете это, django находится под нагрузкой? Сетевой журнал выглядит не очень исправно, сбой в течение 200 мс звучит так, как будто ваш сервер или сеть перегружены.
4. @dkarchmer При локальном запуске таких проблем нет. Я посмотрю, что выводит debug-toolbar
5. @serg Нет, это были единственные запросы, отправляемые на сервер