2008-12-12 8 views
15

У меня есть новая установка django 1.0, и простая страница, которая от нее требуется, занимает 5 секунд для загрузки. На компьютере моего коллеги почти нет времени.django очень медленный на моей машине

Я запустить сервер с помощью

 
python manage.py testserver 

Я могу видеть каждый GET запрос (PNGs и таблицы стилей) занимают около полсекунды.

Еще одна странная вещь, которая, как мне кажется, связана, заключается в том, что функциональные тесты для приложения выполняются гораздо медленнее на моей машине с MySQL (порядка 100 раз медленнее, чем на машине моего коллеги). Когда я устанавливаю приложение для использования sqlite, они работают довольно быстро. Я хотел бы воскликнуть, что sqlite не сильно меняет время загрузки страницы, но ускоряет запуск сервера.

Это похоже на проблему с IO, но я не вижу общих проблем с производительностью на своей машине, кроме как минимум django.

Django работает на python2.4, я запускаю Vista. Я также проверил python2.5.

Благодаря ΤΖΩΤΖΙΟΥ, он должен быть проблемой DNS, потому что страница быстро загружается, как только вместо http://localhost:8000/app Я иду к http://127.0.0.1:8000/app.

Но что это могло быть вызвано? Мой хост-файл имеет только две записи:

 
127.0.0.1 localhost 
::1   localhost 
+0

Это первый раз, когда вы запрашиваете страницу или каждый раз? Кроме того, когда вы используете серверный сервер, это то же самое? – 2008-12-12 14:25:21

+0

Это самая глупая ошибка, но я наткнулся на всю свою жизнь! Мой файл hosts пуст, потому что в Windows 7 эти две строки обрабатываются [в самом DNS-сервере] (http://serverfault.com/questions/4689/windows-7-localhost-name-resolution-is-handled-within- DNS-сама-почему). И те же симптомы! Добавление строки «127.0.0.1 localhost» разрешает ее. Спасибо чувак! – 2017-03-04 19:21:15

ответ

17

У Firefox есть проблемы с доступом к localhost на некоторых компьютерах с ОС Windows. Вы можете решить эту проблему, отключив ipv6, что на самом деле не рекомендуется. Использование 127.0.0.1 напрямую - это еще один способ решения этой проблемы.

+0

Даже если localhost находится в файле hosts? Интересно ... – Powerlord 2008-12-15 14:54:57

0

Отключить AV Сканирование & увидеть, если это делает разницу. Это также может быть вызвано Vista. Обновите последний пакет обновления и повторите попытку.

2

Я думаю, что это сервер разработки, он не оптимизирован для скорости и безопасности. Я заметил, что специально обслуживающие статические файлы (т. Е. Мультимедиа) работают медленно.

3

Поскольку вы сообщаете, что машина вашего друга не имеет задержек, и я полагаю, что ваши и его сопоставимые компьютеры, это может быть проблема, связанная с DNS. Попробуйте добавить как IP-адрес клиента, так и IP-адрес сервера в файл хостов сервера.

Если вы запустите Django on * nix, это файл /etc/hosts. Если запустить его в MS Windows, это файл %WINDIR%\SYSTEM32\DRIVERS\ETC\HOSTS. (Они являются текстовыми файлами и могут быть отредактированы вашим любимым текстовым редактором.)

+0

5 секундная задержка всегда звучит как проблема разрешения имен для меня. – 2008-12-12 17:55:14

1

И если все остальное не удается, вы всегда можете указать свое приложение и посмотреть, где именно находится узкое место.

1

У меня была такая же проблема в прошлом. Его можно решить, удалив следующую строку из вашего файла hosts.

::1   localhost 

Как только вы уйдете, вы снова сможете использовать локальный хост.

2

Если бы такая же проблема, я заметил ее с помощью Firefox на компьютерах Vista и Windows 7. Доступ к серверу разработки 127.0.0.1:8000 решил проблему.

0

Чтобы полностью обойти локальный хост без изменения файла hosts или любых настроек в Firefox, вы можете установить аддон Redirector и сделать правило для перенаправления с localhost на 127.0.0.1. Используйте эти настройки

Include pattern : http://localhost* 
Redirect to  : http://127.0.0.1$1 

Оставьте остальные поля пустыми.

7

Ни один из этих сообщений не помог мне. В моем конкретном случае Justin Carmony дал мне ответ.

Проблема

Я картирование [имя хоста] .local к 127.0.0.1 в моей/и т.д./файл хостов для простых целей развития и запросов DNS принимают 5 секунд на то, чтобы решить. Иногда они решались быстро, иначе бы они этого не сделали.

Решение

компании Apple использует .local, чтобы сделать некоторые Bonjour магии на новый Snow Leopard строит (я думаю, что я начал замечать это после обновления до 10.6.8) и Mac OS X Lion. Если вы измените имя хоста dev, чтобы начать с локального, а не с локального, вы должны быть настроены. Кроме того, вы можете в значительной степени использовать любой TLD, кроме локального, и он будет работать без конфликтов.

Пример

test.local может стать:

  • local.test.com
  • test.dev
  • тест [ничего, кроме местных]

. и запись вашего хоста будет выглядеть следующим образом:

local.test.com 127.0.0.1 

Примечание: Это решение имеет дополнительное преимущество, заключающееся подобласть [имя хоста] .com, что делает его проще указать доменное имя приложения для API, Facebook и т.д.

также может запустите dscacheutil -flushcache в терминале для хорошей оценки после обновления/etc/hosts

1

У меня была такая же проблема, но она была вызвана mysqld.

Приложение работало довольно быстро при производстве с wsgi и сервером mysql на одном и том же хосте, но медленно в среде разработки с параметром runer django и удаленным сервером mysql.

Я заметил использование «show processlist», что соединения в базе данных, которые застряли в состоянии «login» с пользователем «не прошедшим проверку пользователя», и это заставляет меня заметить, что проблема в процессе аутентификации.

Ищете настоящую проблему, я наконец заметил, что mysqld пытается получить имя dns моего ip и отключить разрешение имен dns, я исправил проблему.

Для этого вы можете добавить эту строку в мою.CNF файл:

пропуск имя-разрешение

0

я получил ту же проблему.

решение было:

  • Я пытался начать, локальной версии, которая была развернута на обычно работают на жидком вебсервером в производстве.
  • статических файлов в производстве обслуживало Апач конфигурации, а не с Джанго статического служить

поэтому я просто раскомментировать назад мой статические служить URL-адреса:/

1

Обновления до Django 1.3 или более поздней версии.

Если у вас все еще есть эта проблема в 2012 году (с использованием Chrome), убедитесь, что вы обновляете. В 1.3 был зафиксирован bug, связанный с медлительностью, когда сервер dev был однопоточным.

Модернизация решила мои проблемы. Я запускал Django 1.2, поскольку это дефолт на Debian Squeeze.