У меня тут небольшой вопрос. У меня давно /etc/hosts
файл. (работаю в сети, поэтому я размещаю много сайтов для разработки). Скажем, это около 40-50 строк. Все перенаправляем на 127.0.0.1.
Теперь при проверке инспектора Chrome кажется, что мои локальные веб-страницы загружаются медленно из-за части поиска DNS. На mygreatwebsite.local
URL также определен в /etc/hosts
файл.
После быстрой проверки могло показаться, что уменьшение hosts
в пару строк, значительно ускоряет поиск DNS. Итак, мой вопрос, можно ли столкнуться с различиями примерно в 5 секунд для 50 строк и незначительное время для пары строк? Или мне что-то совсем не хватает?
Ваш tld .local может быть проблемой, zeroconf использует это. Настоящего стандарта нет, но для внутреннего TLD рекомендуется использовать .site или .internal. Видеть http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-domains для этого.
Может ли длинный файл / etc / hosts замедлить поиск DNS?
Ответ дана машине с Windows (XP / Vista / 7).
Это известная проблема, что длинный файл hosts не работает со службой «DNS-клиент».
http://winhelp2002.mvps.org/hosts.htm:
в большинстве случаев большой файл HOSTS (более 135 КБ) замедляет работу машины.
[Решение: установите для службы «DNS-клиент» ручной режим или отключите]
http://vlaurie.com/computers2/Articles/hosts.htm:
Обратите внимание, что хозяева Файл, размер которого намного превышает 100 КБ, может фактически замедлить просмотр, если служба «DNS-клиент» не настроена на запуск вручную.
www.ericphelps.com/scripting/samples/Hosts/:
Самое важное, что нужно сделать перед использованием больших файлов HOSTS, - это отключить на вашем компьютере службу клиента службы доменных имен («DNS-клиент» или «DnsCache»). Звучит странно, но DNS-клиент не нужен для работы с DNS. Хуже того, если у вас есть большой файл HOSTS (что я предлагаю), DNS-клиент заглушает ваш компьютер.
... и я лично был свидетелем этого на трех разных машинах с Windows: XP Pro, Vista и 7 Starter.
Я бы предложил использовать tcpdump, чтобы увидеть, что на самом деле происходит. Без этого вы будете только гадать.
Базовый синтаксис будет
tcpdump -n -i eth0 port 80 or port 53
(если вы хотите увидеть порты 80 и 53, -n, чтобы предотвратить поиск DNS, предположим, что все коммуникации происходят на eth0).
Если это слишком быстро или слишком много информации, перенаправьте ее в файл дампа, добавив:
-s 0 -w /tmp/dump
и используйте, например, wirehark для просмотра файла дампа. Вы можете увидеть точную информацию о времени в файле и многое другое ...
Когда я использовал Spybot, он вставлял около 50 000 записей файлов hosts, которые перенаправляли известные вредоносные сайты на 127.0.0.1. Я никогда не замечал никаких проблем с длинным файлом hosts такого рода. Скорее всего, это больше связано с настройкой вашего разработчика или самим кодом. Сколько сайтов вы обслуживаете локально (50?) Каждый ли из них так долго отвечает, когда присутствует 50 записей?
По разным причинам у меня есть файлы hosts на некоторых машинах с сотнями записей. Это не влияет на поиск DNS просто потому, что, как только машина нашла запись в файле hosts, она не будет выполнять поиск той же информации. Если все остальное настроено правильно, определение размера файла hosts не повлияет на производительность, потому что даже с тысячей записей этот файл все равно можно проанализировать быстрее, чем выполнение поиска в DNS. Проверьте порядок, в котором ваш аппарат разрешает адреса. Файл hosts должен быть первым.
Основываясь на моем тестировании, файл hosts размером 34 МБ с несколькими миллионами записей немного замедляет просмотр в Windows, даже когда служба «DNS-клиент» отключена. Итак, есть максимальный размер, за который вы, вероятно, не захотите выходить.