Может ли длинный файл / etc / hosts замедлять поиск DNS?

9

У меня тут небольшой вопрос. У меня есть длинный /etc/hostsфайл. (работает в Интернете, поэтому я размещаю множество сайтов для разработки). Скажем, это около 40, 50 строк. Все перенаправления на 127.0.0.1.

Теперь при проверке инспектора Chrome кажется, что мои локальные веб-страницы загружаются медленно из-за части поиска DNS. По mygreatwebsite.localURL-адресу, также определенному в /etc/hostsфайле.

После быстрой проверки может показаться, что сокращение hostsфайла до пары строк резко ускоряет поиск в DNS. Итак, мой вопрос, возможно ли столкнуться с разницей примерно в 5 секунд для 50 строк и незначительным временем для пары строк? Или я что-то упустил полностью?

Zenklys
источник
Сколько? Я использовал> 20000 файлов (но не DNS). Взгляды не заняли заметно много времени ...
Герт ван ден Берг

Ответы:

18

Ваш tld .local может быть проблемой, zeroconf использует это. Не существует реального стандарта, но рекомендуемое tld для внутреннего tld - .site или .internal. См. Http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-domains для этого.

ott--
источник
1
Действительно, я заметил значительное повышение производительности при использовании расширения .site. После небольшого исследования кажется, что это протокол Apple Bonjour, который использует .local tld.
Zenklys
Я присоединился к StackExchange, чтобы сказать СПАСИБО за этот отличный совет. Мое приложение занимало 10-15 секунд только для загрузки ресурсов и превращало моего разработчика в кошмар. При использовании домена .site страницы снова загружаются. Потрясающие. Примечание: кто-то должен упомянуть об этом тидбите всем блоггерам / скринкастерам, которые используют .local!
Стивен Гарсия
5

Может ли длинный файл / etc / hosts замедлять поиск DNS?

Ответ - да , на машине с Windows (XP / Vista / 7).

Известной проблемой является то, что длинный хост-файл не работает со службой «DNS-клиент».

http://winhelp2002.mvps.org/hosts.htm :

в большинстве случаев большой файл HOSTS (более 135 кб) замедляет работу компьютера.

[Решение: установите службу «DNS-клиент» на ручную или отключенную]

http://vlaurie.com/computers2/Articles/hosts.htm :

Обратите внимание, что файл hosts, размер которого превышает 100 КБ, может на самом деле замедлять просмотр, если служба «DNS-клиент» не настроена на ручной запуск.

www.ericphelps.com/scripting/samples/Hosts/:

Самое важное, что нужно сделать перед использованием больших файлов HOSTS, - это отключить службу клиента службы доменных имен («DNS-клиент» или «DnsCache») на вашем компьютере. Звучит странно, но DNS-клиент не нужен для DNS. Хуже того, если у вас большой файл HOSTS (что я и предлагаю), клиент DNS заглушит весь ваш компьютер.

... и я лично был свидетелем этого на трех разных машинах с Windows: XP Pro, Vista и 7 Starter.

Теро Ниеми
источник
Интересная точка зрения. Я этого не знал. Но этот вопрос касается среды Mac Os. ;)
Zenklys
2

Я бы предложил использовать tcpdump, чтобы увидеть, что на самом деле происходит. Без этого вы будете только догадываться.

Основной синтаксис будет

tcpdump -n -i eth0 port 80 or port 53

(если вы заинтересованы в том, чтобы видеть порты 80 и 53, -n для предотвращения поиска DNS, предположим, что вся коммуникация происходит на eth0).

Если это слишком быстро или слишком много информации, перенаправьте ее в дамп-файл с добавлением:

 -s 0 -w /tmp/dump

и используйте ie wireshark для просмотра файла дампа. Вы можете увидеть точную информацию о времени в файле и многое другое ...

Радек Хладик
источник
1

Когда я использовал Spybot, он вставлял около 50 000 записей в файле hosts, которые перенаправляли известные вредоносные сайты на 127.0.0.1. Я никогда не замечал никаких проблем с наличием длинного файла hosts такого типа. Скорее всего, это больше связано с вашей настройкой dev или самим кодом. Сколько сайтов вы обслуживаете локально (50?). Каждый ли из них так долго реагирует, когда присутствует 50 записей?

iainlbc
источник
Да, я уверен, что это не имеет никакого отношения к самим сайтам, они отлично работали на моем другом Mac (Snow Leopard). Теперь на Lion изменились только конфигурация сервера и файл hosts. И да, они все загружаются в одно и то же время. И всегда на части поиска DNS.
Zenklys
0

По разным причинам у меня есть файлы хостов на некоторых машинах с сотнями записей. Это не влияет на поиск DNS просто потому, что, как только машина обнаружит запись в файле hosts, она не будет выполнять поиск той же информации. Если все остальное настроено правильно, определение размера файла hosts не повлияет на производительность, потому что даже с тысячами записей этот файл все равно может быть проанализирован быстрее, чем поиск DNS. Проверьте порядок, в котором ваша машина разрешает адреса. Файл hosts должен быть первым.

Джон Гарденье
источник
Спасибо за ответ. Как я могу проверить заказ?
Zenklys
@Zenklys, мне придется оставить это кому-то гораздо более опытному в Linux, чтобы ответить за тебя.
Джон Гарденье
0

Исходя из моего тестирования, файл хоста 34 МБ с несколькими миллионами записей несколько замедляет просмотр в Windows, даже когда служба «DNS-клиент» отключена. Таким образом, существует максимальный размер, за который вы, вероятно, не хотите идти.

тяготение
источник