Django очень медленно передает данные через Интернет

#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: Django обрабатывает файл за 7 секунд
Apache обрабатывает файл за 1,2 секунды

Комментарии:

1. можете ли вы использовать Chrome network View, чтобы получить файл и показать результаты?

2. Работает ли он на вашем локальном сервере разработки? Попробуйте запустить с помощью debug-toolbar

3. Когда вы тестируете это, django находится под нагрузкой? Сетевой журнал выглядит не очень исправно, сбой в течение 200 мс звучит так, как будто ваш сервер или сеть перегружены.

4. @dkarchmer При локальном запуске таких проблем нет. Я посмотрю, что выводит debug-toolbar

5. @serg Нет, это были единственные запросы, отправляемые на сервер