Re: The real deal on the Linux 2.2.x filedescriptors

From: Henrik Nordstrom <hno@dont-contact.us>
Date: Fri, 03 Dec 1999 16:16:43 +0100

Miquel van Smoorenburg wrote:
 
> May I offer a small suggestion?
>
> With glibc 2.1 and 2.2 kernels, poll() is fully supported and doesn't
> suffer from the 1024 filedescriptor limit that select does due to
> __FD_SETSIZE.

Squid-2.2 automatically selects poll() on Linux 2.2 and later.

> So what I do is
>
> - Use glibc 2.1
> - Use 2.2.13 or up
> - configure squid with ./configure --enable-poll
> - after configure has run, I edit include/autoconf.h and change
> SQUID_MAXFD to 3000 (or whatever you like, squid will scale it
> down at runtime to the process' maximum anyway).

Parts of Squid relies on FD_SETSIZE (or actually fd_set) even when
poll() is used, so only changing SQUID_MAXFD may get you in trouble. The
problem with Linux (or glibc) is that FD_SETSIZE is hardcoded in the
include headers and not possible to override at compile time like it is
on some other platforms where large filedescriptor support is more
mature.

> But to increase the global ulimit you do NOT need to recompile
> the kernel. You can do it in /etc/initscript - read the
> manpage of initscript(5) for more info.

Thanks.

The page will be updated shortly.

/Henrik
Received on Fri Dec 03 1999 - 09:32:18 MST

This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:49:43 MST