Problem running 'top' when ldap is around

Dan Nelson dnelson at allantgroup.com
Tue Jul 22 15:28:18 UTC 2008


In the last episode (Jul 22), Lowell Gilbert said:
> Stephen Allen <sdafreebsduk at rowyerboat.com> writes:
> > I've noticed that with "files ldap" in nsswitch.conf, if I try to
> > run "top" and the ldap server is not available, it takes about a
> > minute to start showing information, whereas normally it's
> > instantaneous.
> >
> > The problem seems to be the mapping of uid numbers to usernames
> > (the -u options prevents this).  The man page says:
> >
> > "Normally, top will read as much of the file "/etc/passwd" as is
> > necessary to map all the user id numbers it encounters into login
> > names"
> 
> The man page is misleading.  If LDAP or NIS are present, top seems to
> grab all of the entries from there.  Changes to the man page should
> be submitted upstream, if you're interested in that aspect.
> 
> > So my question is, top must be finding a uid number that it can't
> > match in /etc/passwd, then going on to search ldap.  How can this
> > be?
> 
> I'm not sure that top follows nsswitch.conf (but I didn't spend
> enough time looking to be sure).

It does.  I recommend enabling nscd and editing your nsswitch.conf
passwd and group lines to "files cache ldap".  That way only your first
top invocation will be slow, and the rest will pull from nscd.

-- 
	Dan Nelson
	dnelson at allantgroup.com


More information about the freebsd-questions mailing list