Seite 1 von 1

Braucht getfqdn Preformance???

Verfasst: Montag 13. Februar 2006, 08:59
von jens
Weiß jemand ob getfqdn CPU-Zeit benötigt? Bzw. ist das viel? Ich hab mal in socket.py nachgesehen, das Ergebnis von getfqdn() kommt von socket_.gethostbyaddr()

Die Frage ist nun, ob es irgendeine "aktive Auflösung" ist oder ob der hostname eh schon vorhanden ist und aus einer Art dict ausgelesen wird.

Ich Frage mich das deshalb, weil ich in PyLucid entweder generell den Hostnamen feststellen lasse (einfacher zu Implementieren) oder ob ich das z.B. nur beim Login-Versuch machen sollte, weil es zuviel Preformance kostet...

Verfasst: Montag 13. Februar 2006, 11:51
von modelnine
Kommt drauf an. Bei einem vernünftig konfigurierten System kommt der eigene Hostname aus /etc/hosts; ich kenn aber gerade Systeme die per DHCP konfiguriert werden die den Hostnamen jedes mal per DNS nachgucken. Das kostet zwar prinzipiell erst mal kaum CPU-Zeit, aber auf jeden Fall Benutzer-Zeit der auf die DNS-Antwort warten muß.

Warum machst Du daraus keine Konfigurationsoption (ist mit absoluter Sicherheit am schnellsten)? getfqdn() liefert des weiteren nicht umbedingt den Hostnamen den Du haben willst, gerade bei Masshostern.

Verfasst: Montag 13. Februar 2006, 11:53
von jens
Ich nutzt das ganze auf dem Server, um mehr Info's vom Client zu erhalten! Das hätte ich zuschreiben sollen :)
z.B. so:

Code: Alles auswählen

        self.data["client_ip"] = os.environ["REMOTE_ADDR"]
        try:
            self.data["client_domain"] = getfqdn(self.data["client_ip"])
        except Exception, e:
            self.data["client_domain"] = "unknown: '%s'" % e

Verfasst: Montag 13. Februar 2006, 12:32
von modelnine
Wenn der Nameserver nicht lokal ist kostet das viel Zeit, genau wie ich das bereits in meinem ursprünglichen Post schrieb (bzw. wenn auf dem Server nicht sowas wie der nscd installiert ist).

Ich würde das ganz allgemein sein lassen...

Verfasst: Montag 13. Februar 2006, 17:13
von jens
OK, danke für die Info... Ich mache jetzt ein getfqdn() nur einmal beim einloggen...