• Hallo liebe Userinnen und User,

    nach bereits längeren Planungen und Vorbereitungen sind wir nun von vBulletin auf Xenforo umgestiegen. Die Umstellung musste leider aufgrund der Serverprobleme der letzten Tage notgedrungen vorverlegt werden. Das neue Forum ist soweit voll funktionsfähig, allerdings sind noch nicht alle der gewohnten Funktionen vorhanden. Nach Möglichkeit werden wir sie in den nächsten Wochen nachrüsten. Dafür sollte es nun einige der Probleme lösen, die wir in den letzten Tagen, Wochen und Monaten hatten. Auch der Server ist nun potenter als bei unserem alten Hoster, wodurch wir nun langfristig den Tank mit Bytes vollgetankt haben.

    Anfangs mag die neue Boardsoftware etwas ungewohnt sein, aber man findet sich recht schnell ein. Wir wissen, dass ihr alle Gewohnheitstiere seid, aber gebt dem neuen Board eine Chance.
    Sollte etwas der neuen oder auch gewohnten Funktionen unklar sein, könnt ihr den "Wo issn da der Button zu"-Thread im Feedback nutzen. Bugs meldet ihr bitte im Bugtracker, es wird sicher welche geben die uns noch nicht aufgefallen sind. Ich werde das dann versuchen, halbwegs im Startbeitrag übersichtlich zu halten, was an Arbeit noch aussteht.

    Neu ist, dass die Boardsoftware deutlich besser für Mobiltelefone und diverse Endgeräte geeignet ist und nun auch im mobilen Style alle Funktionen verfügbar sind. Am Desktop findet ihr oben rechts sowohl den Umschalter zwischen hellem und dunklem Style. Am Handy ist der Hell-/Dunkelschalter am Ende der Seite. Damit sollte zukünftig jeder sein Board so konfigurieren können, wie es ihm am liebsten ist.


    Die restlichen Funktionen sollten eigentlich soweit wie gewohnt funktionieren. Einfach mal ein wenig damit spielen oder bei Unklarheiten im Thread nachfragen. Viel Spaß im ngb 2.0.

[Python] Check DNS performance

kpj

NGBler

Registriert
27 Juli 2014
Beiträge
98
Moin,

ich hatte in letzter Zeit subjektive Probleme mit meiner Internetverbindung und wollte diese untermauern. Daher habe ich mir ein Skript geschrieben, welches mit Hilfe von pyspeedtest in einem gewissen Interval meine download- und upload-rate misst.

Das Ergebnis sah dann so aus:
rate.png

Es zeigt tendenziell schon, dass meine Verbindung ab und an etwas sub-optimal ist, erklärt meines Erachtens nach aber noch nicht die Verbindungsprobleme, die ich habe.
Häufig harkt es beim Browsen mit "Resolving Host", weswegen ich momentan vermute, dass meine DNS-Lookups langsam sind.

Daher wollte ich fragen, ob ihr eine Idee habt, wie ich (in Python) die Performance meiner DNS-Anbindung prüfen könnte.
Ich dachte an etwas in der Richtung von evtl. einem Timing von
Code:
socket.getaddrinfo('google.com', 80)
hätte dann aber natürlich caching-Probleme...

Vielen Dank für jegliche Hilfe :T
 
Zuletzt bearbeitet:

Rakorium-M

NGBler

Registriert
14 Juli 2013
Beiträge
413
Schick deine DNS-Anfrage doch direkt (aus Python) an deinen DNS-Server.
Dnspython sollte das können:
[src=python]import dns.resolver
my_resolver = dns.resolver.Resolver()
my_resolver.nameservers = ['8.8.8.8'] # deine DNS-Server-IP
answer = my_resolver.query('google.com')[/src]

Solange du häufig genutzte Domains abfragst kannst du damit die Antwortzeit deines DNS-Servers messen (vorausgesetzt der liefert den Record aus dem Cache). Wenn du unbekannte / zufällige Domains benutzt muss der DNS-Server selber nochmal bei anderen Server nachfragen - das könnte das Ergebnis verfälschen.
 

kpj

NGBler

Registriert
27 Juli 2014
Beiträge
98
  • Thread Starter Thread Starter
  • #3
Cool, danke für den Tipp!

Ich werde es wahrscheinlich so in der Art machen:
[src=python] def test(self):
durs = []
for _ in range(self._repetitons):
for u in self._urls:
t = time.process_time()
self._instance.query(u)
d = time.process_time() - t
durs.append(d)
return sum(durs) / len(durs)[/src]
das ganze dann mit ein paar verschiedenen URLs und gucken, ob es dabei Einbrüche gibt.
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Ich frage mich gerade, du misst doch damit nur die Zeit des DNS-Lookups zu sich selbst, aber nicht der Antwortzeit bis zu dir - wie bei einem Ping auf eine Webseite, also wie schnell der Server eine Adresse auflöst?

Und wie schnell eine Adresse auflösst plus minus einer Antwortzeit bis die Verbindung auf eine URL gemacht wird, ist doch der Trick an der Sache? Oder liege ich da falsch.

Ich verstehe halt nicht ganz wie du sonst die Performance eines Providers messen willst, wenn du nur anfragst ob und wie schnell deren Server angesteuert werden kann.
 

kpj

NGBler

Registriert
27 Juli 2014
Beiträge
98
  • Thread Starter Thread Starter
  • #5
Ich bin mir nicht ganz sicher, ob ich verstehe was genau du meinst.

Ich versuche hauptsächlich herauszufinden, ob meine DNS-Lookups manchmal tatsächlich länger dauern und man damit die Verzögerungen beim Browsen erklären könnte.
Falls dies dann der Fall ist, müsste ich natürlich immer noch herausfinden, warum genau das DNS-Zeugs manchmal so lange dauert.

Was genau meinst du mit "Zeit des DNS-Lookups zu sich selbst"? Die Dauer von [src=python]my_resolver.query('google.com')[/src] zu messen sollte mir doch sagen, wie lange es dauert, diesen Namen auf meinem Rechner aufzulösen, oder?
 

theSplit

1998
Veteran Barkeeper

Registriert
3 Aug. 2014
Beiträge
28.573
Ich denke du hast Recht und ich hab mich selbst verwirrt.

Ich habe das mal hier nachgelesen:
https://www.iodigitalsec.com/2014/11/21/performing-dns-queries-python/ bzw. hier: http://www.dnspython.org/examples.html

Also wenn das die Anfrage an den DNS Server richtet, ohne auf Antwort der Domain zu warten die du aufgerufen hast, sollte das wirklich nur die Verbindung zwischen deinem Rechner und dem DNS messen.

Ich dachte du würdest damit die Wegstrecke zwischen Rechner <-> DNS <-> Website messen...
Dann hab ich nichts gesagt. ;)
 
Oben