From: Brian P. <bri...@tu...> - 2004-09-02 16:22:19
|
Brian Paul wrote: > aac...@ad... wrote: > >> Hi, >> >> We currently have a 20 node display that we use with Chromium. All 20 >> nodes, including the Mothership and CRAppfaker run on Windows through >> Cygwin. >> I won't go into excruciating detail about our configuration except to >> say that we use one TileSort spu and 20 render spu's, that are added >> and configured through their appropriate nodes. >> >> The problem we noticed is that the start-up time to initialize all 20 >> displays, plus the CRAppfaker with the Mothership was extremely slow, >> taking more than 3 minutes execution time. >> >> I traced at least part of the problem down to the Mothership.py file >> and the __qualifyHostname__ function. It was spending 4.5 seconds to >> sit on the call to socket.getfqdn(host). We did not have DNS set up >> so I believe it was sitting on this call to fully qualify the host >> name and timing out after 4-4.5 seconds. Also, this function was >> being called twice per display node via the do_acceptrequest and >> do_connectrequest functions. Therefore, this was adding alot of time >> to wait for all of the displays to initialize. Could you please >> explain why it needs to fully qualify the name?? I'm not sure I >> understand why it needs to do this since if we just return immediately >> with the hostname that is passed in, it works just fine. >> Thanks, >> Alicia > > > It looks like that code was a patch from Joel Welling that I checked in > last December. > > Maybe Joel can provide some info. Joel replied and asked that I forward this info to the list: > Well, __qualifyHostname__() does a table lookup, which should be quite fast. > If it fails to find the hostname in that list (__hostPrefixPairs__) it does a > socket.getfqdn(host). I had to add the lookup to facilitate connecting to > Argonne's vis nodes from outside. I believe the socket.getfqdn() was in the > server logic before my mod, but not separated off into the > __qualifyHostname__() function. > > The cost of taking out the socket.getfqdn() would be that we'd be making > connections based on local domain names instead of global ones, and that would > surely not be good for non-local Chromium networks. I presume it works fine > for Alicia without the fqdn is that her network is local and all her hosts are > in each other's /etc/hosts tables (or the Windows equivalent). > > I remember some discussion about this a while back, but I don't have time at > the moment to search the archives for it. Alicia, if you don't want to > disable the socket.getfqdn(host) code and if your hostnames have a common > prefix like 'vis', you could add them to __hostPrefixPairs__ as a temporary > work-around. If the fqdn() hostname lookup is a real problem, perhaps we could add a configuration option to enable/disable it. Something like: cr = CR() cr.Conf("fully_qualify_domain_names", 0) -Brian |