Чи може довгий / etc / hosts провести повільний пошук DNS?


9

Тут я стикаюся з невеликим питанням. У мене довгий /etc/hostsфайл. (працюю в Інтернеті, тому я розміщую безліч сайтів на локальному рівні для розробки). Скажімо, це близько 40, 50 рядків. Усі перенаправлення на 127.0.0.1.

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

Після швидкої перевірки, здається, що зменшення hostsфайлу до пари рядків різко прискорює частину пошуку DNS. Отже, моє запитання, чи можна зіткнутися з різницею приблизно 5 секунд протягом 50 рядків і незначним часом за пару рядків? Або я зовсім чогось пропускаю?


Як довго? Я використав> 20000 файлів хостів рядків (хоча DNS не задіяний). Схоже, це не зайняло помітно довго ...
Герт ван ден Берг

Відповіді:


18

Проблема може бути у вашому tld .local, це використовує zeroconf. Немає реального стандарту, але запропонований tld для внутрішнього tld є .site або .internal. Див. Http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-домени для цього.


1
Дійсно, я помітив велике підвищення продуктивності при використанні розширення .site. Після невеликого дослідження, здається, яблучний протокол Bonjour, який використовує .local tld.
Zenklys

Я приєднався до StackExchange, щоб сказати ДЯКУЙТЕ за цю чудову пораду. Моє додаток займало 10-15 секунд просто для завантаження активів і перетворення мого розробника на кошмар. Використовуючи .site TLD, сторінки знову завантажують усі швидкі. Дивовижно. Sidenote: Хтось повинен згадати цей підказку всім блогерам / екранізаторам, які використовують .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 :

Зауважте, що файл хостів, який перевищує 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).

Якщо це занадто швидко або занадто багато інформації, перенаправляйте її на dumpfile з додаванням:

 -s 0 -w /tmp/dump

і використовуйте ie wireshark, щоб заглянути в dumpfile. Ви можете побачити точну інформацію про терміни у файлі та багато іншого ...


1

Коли я використовував Spybot, він би вставив близько 50 000 записів файлів хостів, які перенаправляють відомі шкідливі сайти на 127.0.0.1. Я ніколи не помічав жодних проблем із тим, щоб мати довгі файли хостів такого характеру. Ймовірно, має більше спільного з вашим налаштуванням розробника або самим кодом. Скільки сайтів ви обслуговуєте на місцях (50?) Чи потрібен кожному з них так довго, щоб відповісти, коли присутній 50 записів?


Так, я впевнений, що це не має нічого спільного з самими сайтами, вони прекрасно бігали на мого іншого мака (Snow Leopard). Тепер на Lion змінилися лише налаштування сервера та файл хостів. І так, всі вони займають однаковий час для завантаження. І завжди в частині пошуку DNS.
Zenklys

0

З різних причин у мене є файли хостів на деяких машинах із сотнями записів. Це не впливає на пошук DNS просто тому, що після того, як машина знайшла запис у файлі хостів, вона не здійснить пошук тієї самої інформації. Якщо все інше налаштовано правильно, розмір файлу хостів не вплине на продуктивність, тому що навіть при тисячі записів цей файл все ще може бути проаналізований швидше, ніж при пошуку DNS. Перевірте порядок вирішення адрес на вашому пристрої. Файл хостів повинен бути першим.


Дякую, за відповідь. Як перевірити замовлення?
Zenklys

@Zenklys, мені доведеться залишити це комусь набагато більш знавцю Linux, щоб відповісти на це за вас.
John Gardeniers

0

На підставі мого тестування, 34-мегабічний файл хостів із кількома мільйонами записів трохи сповільнює перегляд у Windows, навіть коли служба "Клієнт DNS" відключена. Отже, існує максимальний розмір, за який ви, мабуть, не хочете йти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.