Das Putzlowitsch Test- und SEO-Blog

Firefox DNS-Prefetching, vorausschauende DNS-Abfragen

IP-Adressen, DNS und DNS-Cache

Wenn jemand meine Schnurpsel-Seite besuchen will, gibt er einfach in der Adresszeile des Browers schnurpsel.de ein. Das Internet funktioniert aber mit IP-Adressen, so ist Schnurpsel z.B. unter der Adresse 81.169.145.149 zu erreichen. Damit der Name in eine IP-Adresse umgesetzt werden kann, gibt es das DNS (Domain Name System) und entsprechende Server, die die Auflösung der Namen übernehmen.

Damit nun der Server nicht jedesmal neu befragt werden muß, werden bereits aufgelöste Namen zwischengespeichert. Einerseits verfügen viele Beriebssysteme über so einen DNS-Cache, teilweise sogar die Browser selbst und auch mein nigelnagelneuer DSL-ISDN-WLAN-Router hat einen solchen DNS-Cache.

Ein Blick in den DNS-Cache

DNS-Cache

Normalerweise bin ich nicht ständig im DNS-Cache zugange, aber so einem neuen Router schaue ich anfangs gern mal auf die Finger. Im Systemprotokoll wird auch brav vermerkt, was der Router gerade so treibt. Etwas verwundert war ich über die zahlreichen Einträge „dnsd: cache add…“.

Da tauchten plötzlich Seiten wie Nerdcore, Stefan Niggemeier, BILDblog, netzwertig.com, CARTA und weitere auf, die ich in den letzten Minuten garantiert nicht besucht hatte. Aber irgendwie kam mir die Liste bekannt vor.

Und richtig, ich hatte kurz vorher bei zusammen.gerech.net einen Blick auf die aktuelle Blog-Top-100 geworfen. Da stehen sie alle in der Liste, nur hatte ich keinen der Links dort angeklickt. Sollte etwa der Firefox…

Der Firefox schaut voraus

Seit Firefox 3.5 gibt es ein sogenanntes DNS-Prefetching, der Firefox macht also für alle auf der Seite gefunden Links eine DNS-Abfrage für die verlinkten Seiten. Das soll etwas mehr Geschwindigkeit bringen. Falls der Nutzer einen der Links anklickt, ist die IP-Adresse schon bekannt und es kann sofort losgehen.

Wenn der Nutzer aber keinen der 100 Links anklickt, wurden 100 unnütze DNS-Abfragen getätigt und 100 Einträge im DNS-Cache belegt, die keiner braucht. Der DNS-Cache meines Routers faßt in der Standardeinstellung übrigens genau 100 Einträge. Alles einmal mit Quark gefüllt.

DNS-Prefetching abschalten

Netterweise kann man im Firefox das DNS-Prefetching abschalten, aber nicht etwa in den Konfigurations-Dialogen, sondern durch einen beherzten Systemeingriff mittels about:config. Wie es geht und viele weitere Einstellmöglichkeiten findet man z.B. bei mozillaZine.

Kreativ und originell bloggen

Beim aktuellen Webmaster-Friday geht es um „Kreativ und originell bloggen: was inspiriert Euch?„. Das kann ich für schnurpsel.de recht einfach beantworten. Dieses Blog wird von Beobachtungen, Betrachtungen und Problemen rund um die Themen Internet, Technik, Suchmaschinen, WordPress, Webhoster und ähnlichen getrieben. Das gab, gibt und wird es sicher noch lange geben (siehe oben :-)).

3 Kommentare »

Höher, schneller, weiter

Mit den Google-Webmastertools bekommt man einen guten Überblick, wie oft der Googlebot vorbeischaut und wieviele Daten er in welcher Zeit Abfragt.

Pro Tag gecrawlte Seiten

Google - Crawling Anzahl der Seiten pro Tag Februar 2010
Auf dem Diagramm ist noch das Ende vom November, der ganze Dezember und Januar und der Anfang vom Februar zu sehen. Scheinbar tritt der Googlebot auch über den Jahreswechsel etwas kürzer, feiert Weihnachten und Silvester und legt dann erst Mitte Januar wieder richtig los.

Pro Tag heruntergeladene Kilobyte

Google - Crawling Datenmenge in kByte pro Tag Februar 2010
In etwa parallel dazu verläuft normlerweise die Kurve zu den täglich heruntergeladenen Datenmengen. Klar, je mehr Seiten angefragt werden, um so mehr Daten fallen da durchschnittlich an.

Eines fällt aber auf, denn obwohl die Anzahl der pro Tag abgefragten Seiten ab Mitte Januar und im Februar höher liegen als noch im November, ist die Datenmenge nicht in gleichem Maße angestiegen. Der Grund ist recht einfach. Ich hatte Anfang/Mitte Dezember die gzip-Komprimierung für die Seiten aktiviert.

Dauer des Herunterladens einer Seite (in Millisekunden)

Google - Crawling Zeit in Millisekunden pro Seite Februar 2010
Die Geschwindigkeit der Seitenauslieferung ist die für den normalen Nutzer, also den Besucher einer Website der wohl wichtigste, technische Wert. Wenn erstmal ein paar Sekunden nach dem Aufrufen einer Seite oder länger nichts passiert, ist das aus Anwendersicht eher unerfreulich.

Der Wert lag im November bei etwa 1,5 Sekunden und schließt damit an die Zahlen vom Oktober an. Anfang Dezember bin ich dann Dank SpeedPlus wieder zu Strato zurückgekehrt und seitdem liegen die Ladezeiten fast immer bei erfreulichen 0,8 Sekunden. Aber eben nur fast. Wie man im Diagramm sieht, gab es schon im Dezember und Anfang Januar Ladezeitspitzen, die dann im Februar nochmal deutlich zunahmen. Allerdings ist das eher darin zu sehen, daß durch die größere Anzahl der pro Tag abgefragten Seiten auch die Wahrscheinlichkeit für den Googlebots auf eine Lastspitze zu treffen, größer war.

Ungeachtet dessen gibt es aber diese Lastspitzen, die nicht nur der Googlebot „sieht“, sondern auch der normale Nutzer bemerkt. Wenn man Pech hat, dauert das Laden einer Seite wieder 4 bis 6 Sekunden, ganz so wie vor der SpeedPlus-Zeit bei Strato. Diesmal ist es aber meiner Meinung nach nicht die schlechte PHP-Performance, sondern eher die Datenbank. Die Datenbankserver sind zwar grundsätzlich nicht wirklich lahm, legen aber ab und zu ein paar Gedenkminuten ein, wie mir scheint. Und genau dann dauert der Seitenaufruf wieder mehrere Sekunden. Kürzlich gab es auch wieder mal einen Totalausfall, der dann zu einem 500er Fehler führt.

Hin und weg

Nun sind zwar PHP und Webserver bei Strato schnell, aber die Datenbank klemmt mitunter. Deshalb bin ich vorerst wieder zu meiner externen Datenbank zurückgekehrt. Das eigentlich langsame ist hierbei die Datenübertragung über das Internet zwischen Strato (Karlsruhe/Berlin) und Host-Europe (Köln). Um das etwas abzudämpfen, habe ich zusätzlich ein Datenbank-Cache-Plugin installiert, welches häufig benötigte Daten auf dem Webspace bei Strato im Dateisystem ablegt, um diese nicht jedesmal neu übertragen zu müssen. Zumal sich viele Daten, z.B. die Artikel und Seiten normalerweise eh nicht ändern.

Nun werde ich das Alles mal weiter beobachten, wie das mit den Ladezeiten so aussieht und hoffe aber trotzdem, das Strato die Datenbankaussetzer in den Griff bekommt.

Keine Kommentare »