Kann eine lange / etc / hosts-Datei die DNS-Suche verlangsamen?

9

Ich stehe hier vor einer kleinen Frage. Ich habe eine lange /etc/hostsDatei. (Ich arbeite im Web, also hoste ich viele Websites vor Ort, um sie zu entwickeln.) Nehmen wir an, es ist ungefähr 40, 50 Zeilen lang. Alle Weiterleitungen zu 127.0.0.1.

Wenn ich jetzt den Inspektor von Chrome überprüfe, scheinen meine lokalen Webseiten aufgrund des DNS-Lookup-Teils langsam geladen zu werden. Auf einer mygreatwebsite.localURL, die auch in der /etc/hostsDatei definiert ist .

Nach einer kurzen Überprüfung scheint es, dass das Reduzieren der hostsDatei auf ein paar Zeilen den DNS-Lookup-Teil drastisch beschleunigt. Meine Frage, ist es also möglich, mit Unterschieden von ungefähr 5 Sekunden für 50 Zeilen und unbedeutenden Zeiten für ein paar Zeilen konfrontiert zu werden? Oder fehlt mir etwas komplett?

Zenklys
quelle
Wie lang? Ich habe> 20000 Line-Hosts-Dateien verwendet (allerdings kein DNS). Das Aussehen dauerte nicht merklich lange ...
Gert van den Berg

Antworten:

18

Ihre tld .local könnte das Problem sein, zeroconf verwendet dies. Es gibt keinen wirklichen Standard, aber das vorgeschlagene tld für ein internes tld ist .site oder .internal. Siehe hierzu http://en.wikipedia.org/wiki/Top-level_domain#Pseudo-domains .

ott--
quelle
1
In der Tat habe ich bei der Verwendung der .site-Erweiterung eine große Leistungssteigerung festgestellt. Nach ein wenig Recherche scheint es das Bonjour-Protokoll des Apfels zu sein, das .local tld verwendet.
Zenklys
Ich bin StackExchange beigetreten, um Ihnen für diesen hervorragenden Tipp zu danken. Meine App brauchte 10-15 Sekunden, um Assets zu laden und meinen Entwickler zu einem Albtraum zu machen. Bei Verwendung von .site TLD werden die Seiten wieder bissig geladen. Genial. Nebenbemerkung: Jemand muss diesen Leckerbissen allen Bloggern / Screencastern mitteilen, die .local verwenden!
Steven Garcia
5

Kann eine lange / etc / hosts-Datei die DNS-Suche verlangsamen?

Die Antwort lautet " Ja" auf einem Windows-Computer (XP / Vista / 7).

Es ist ein bekanntes Problem, dass eine lange Hosts-Datei mit dem "DNS-Client" -Dienst nicht gut funktioniert.

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

In den meisten Fällen verlangsamt eine große HOSTS-Datei (über 135 KB) die Maschine.

[Lösung: Setzen Sie den "DNS-Client" -Dienst auf manuell oder deaktiviert]

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

Beachten Sie, dass eine Hosts- Datei mit mehr als 100 KB das Surfen verlangsamen kann, es sei denn, der Dienst "DNS-Client" ist auf manuellen Start eingestellt.

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

Das Wichtigste, was Sie tun müssen, bevor Sie große HOSTS-Dateien verwenden, ist, den Dienst des Domain Name Service-Clients ("DNS-Client" oder "DnsCache") auf Ihrem Computer zu deaktivieren. Es klingt bizarr, aber der DNS-Client wird für DNS nicht benötigt. Schlimmer noch, wenn Sie eine große HOSTS-Datei haben (was ich vorschlage), verstopft der DNS-Client Ihren gesamten PC.

... und ich habe dies persönlich auf drei verschiedenen Windows-Computern gesehen: XP Pro, Vista und 7 Starter.

Tero Niemi
quelle
Interessante Sicht. Das wusste ich nicht. Diese Frage betrifft jedoch Mac Os-Umgebungen. ;)
Zenklys
2

Ich würde vorschlagen, tcpdump zu verwenden, um zu sehen, was tatsächlich los ist. Ohne es werden Sie nur raten.

Grundlegende Syntax wäre

tcpdump -n -i eth0 port 80 or port 53

(Wenn Sie daran interessiert sind, die Ports 80 und 53, -n zu sehen, um DNS-Suchvorgänge zu verhindern, wird angenommen, dass die gesamte Kommunikation auf eth0 stattfindet.)

Wenn dies zu schnell oder zu viele Informationen sind, leiten Sie sie mit folgendem Zusatz zu dumpfile um:

 -s 0 -w /tmp/dump

und benutze zB Wireshark, um in das Dumpfile zu schauen. Sie können genaue Timing-Informationen in der Datei sehen und vieles mehr ...

Radek Hladík
quelle
1

Wenn ich Spybot verwendete, fügte es ungefähr 50.000 Hosts-Dateieinträge ein, die bekannte schädliche Sites auf 127.0.0.1 umleiten. Ich habe nie Probleme mit einer langen Hosts-Datei dieser Art bemerkt. Hat wahrscheinlich mehr mit Ihrem Entwickler-Setup oder dem Code selbst zu tun. Wie viele Websites bedienen Sie lokal (50?) Braucht jeder von ihnen so lange, um zu antworten, wenn 50 Einträge vorhanden sind?

iainlbc
quelle
Ja, ich bin sicher, es hat nichts mit den Websites selbst zu tun, sie liefen perfekt auf meinem anderen Mac (Snow Leopard). Bei Lion haben sich nur die Serverkonfiguration und die Hosts-Datei geändert. Und ja, das Laden dauert alle gleich lange. Und immer im DNS-Lookup-Teil.
Zenklys
0

Aus verschiedenen Gründen habe ich Hosts-Dateien auf einigen Computern mit Hunderten von Einträgen. Dies hat keine Auswirkungen auf DNS-Suchvorgänge, da der Computer, sobald er einen Eintrag in der Hosts-Datei gefunden hat, nicht nach denselben Informationen sucht. Wenn alles andere richtig konfiguriert ist, wirkt sich das Ermitteln der Größe der Hosts-Datei nicht auf die Leistung aus, da diese Datei selbst bei tausend Einträgen immer noch schneller analysiert werden kann als eine DNS-Suche. Überprüfen Sie die Reihenfolge, in der Ihr Computer Adressen auflöst. Die Hosts-Datei sollte an erster Stelle stehen.

John Gardeniers
quelle
Danke für die Antwort. Wie überprüfe ich die Bestellung?
Zenklys
@Zenklys, ich muss es jemandem überlassen, der viel mehr Linux-Experten hat, um das für Sie zu beantworten.
John Gardeniers
0

Basierend auf meinen Tests verlangsamt eine 34-MB-Hostdatei mit einigen Millionen Einträgen das Surfen in Windows ein wenig, selbst wenn der Dienst "DNS-Client" deaktiviert ist. Es gibt also eine maximale Größe, über die Sie wahrscheinlich nicht hinausgehen möchten.

Gravitation
quelle