[Date Prev][Date Next] [Chronological] [Thread] [Top]

Re: beyond descriptor table size error

Thanks to all for the replies. This looks promising, I should have
thought about network connections. This ldap server is hit hard, it's
used for email address lookups. We had a mail loop that caused close to
4000 sendmail processes to pile up in a WAIT state on another machine
the other day. It's very possible many or all of those had a connection
open or were trying to open a connection. But even without that, I see
this problem occurring.

The startup script does do a ulimit -n 16384 before it starts the slapd
daemon but I am not sure if that then is inherited. file-max is close to
300,000, I remember looking at that before.

But, looking at the established connections verses closed may tell me
something and setting idle_timeout sounds like a good idea anyway, it
currently is not set, thanks Howard. I'll give this a shot before I
tweak and recompile. I agree, I doubt fdset is the issue, but I might
have to increase setsize, these two ldap servers do get beat on a lot.

I shouldn't have to wait too long, this is a daily occurrence.


Howard Chu wrote:
> > -----Original Message-----
> > From: owner-openldap-software@OpenLDAP.org
> > [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of int Mike Jackson
> > ext Curtis J Blank (curt@uwm.edu) wrote:
> > > Thanks for the reply, no, SuSE Linux 2.4.18, sorry, I should have
> > > mentioned that.
> > >
> > > -Curt
> >
> > Hi Curt,
> >  Have a look at this link for some explanation of what you need to do:
> >
> > http://lists.paco.net/oops-eng/msg00317.html
> Ugh. "Certified Linux Engineers" who don't know the difference between a
> socket and a file descriptor? Please....
> Fix the problem, not the symptom. It is pretty rare for a single server to
> have 1024 simultaneous client sessions. If that's really the case on your
> server, raising the limits may be appropriate. More likely you have a number
> of stale connections from clients that have gone away. Start by looking at
> netstat to see how many connections are active vs CLOSED. You probably need
> to set an idletimeout in slapd.conf.
> FYI, on Linux the size of an fdset is a compile-time constant. No runtime
> kernel tweaking is needed, the kernel's limit is actually 1048576. If you
> need more descriptors than that, you're doing something wrong. If you want
> more than 1024 file descriptors for select, you redefine __FD_SETSIZE and
> recompile your code.
>  -- Howard Chu
>  unCertified GNU/Linux Designer/Implementer