Interesting results for getservbyname() performance (and possible changes for /etc/services)

Phil Knirsch pknirsch at redhat.com
Thu Jan 12 16:56:10 UTC 2006


Ulrich Drepper wrote:
> Ralf Ertzinger wrote:
> 
>>AFAIK nscd can cache everything going through nsswitch.conf, including
>>services.
> 
> 
> No, you're wrong.  nscd  only caches passwd, group, hosts data.  Nothing
> else.
> 
> And I'm reluctant to add support for rarely used other services because
> the cost doesn't really justify the gains.  For this problem, as I told
> Phil already internally, I think it's perfectly fine to use nss_db.
> It's really static data so updating the database when a) the
> /etc/services file changes or b) the nss_db implementation changes, is
> no big issue.
> 
> 

I've quickly ran some tests with this change. Here the results:

Unkown service "foobar":
   old:    7.65user 5.51system 2:06.60elapsed
   new:    63.99user 10.55system 3:09.55elapsed
   old.db: 9.38user 14.36system 2:17.05elapsed
   new.db: 66.80user 19.56system 3:22.44elapsed

Known service "svn" (roughly in the middle of both files):
   old:    1.92user 0.42system 0:02.35elapsed
   new:    39.91user 3.52system 0:43.43elapsed
   old.db: 0.60user 8.30system 0:08.91elapsed
   new.db: 0.72user 8.48system 0:09.21elapsed

Known service "ssh" (very early in both files):
   old:    0.20user 0.27system 0:00.47elapsed
   new:    0.26user 0.28system 0:00.55elapsed
   old.db: 0.68user 8.53system 0:09.22elapsed
   new.db: 0.62user 8.41system 0:09.04elapsed


The result here is fairly interesting again. For small /etc/services 
files or if almost always only the first 40-50 services are requested 
the non-db version wins always. The bigger the file gets though and the 
more "later" services are requested the faster the db version gets 
(fairly logical of course).

So the use of the db version depends on wether your applications use a 
wide range of services and if your /etc/services file is big. As almost 
always, there is no perfect solution for everyone.

Read ya, Phil

-- 
Philipp Knirsch      | Tel.:  +49-711-96437-470
Development          | Fax.:  +49-711-96437-111
Red Hat GmbH         | Email: Phil Knirsch <phil at redhat.de>
Hauptstaetterstr. 58 | Web:   http://www.redhat.de/
D-70178 Stuttgart
       Kaa's Law: In any sufficiently large group of people most are idiots.




More information about the fedora-devel-list mailing list