At Wed, 30 Jul 2008 18:44:47 +0200, Thomas Jacob <[EMAIL PROTECTED]> wrote:
> > > We checked the FD_SETSIZE-Param, its about 1024. > > > ulimit -n is set to 16384. > > > Has anybody an idea how to increase the FD_SETSIZE on debian > > > or how to handle more than 1024 sockets for bind? > > > > I'm given to understand that Linux doesn't support increasing > > FD_SETSIZE on the fly; you have to rebuild the system to do that. > > Actually that's not what I get from skimming through > the kernel and bind sources. It's bind that using the > predefined FD_SETSIZE as a hard limit, not Linux. There's some misunderstanding here. What Evan meant (which is actually what I told him) is that building bind with -DFD_SETSIZE=xxxx doesn't work as expected in Linux (while this works for many other OSes). And 'rebuilding the system' has a larger sense, including modifying system's header file; as we saw in other messages in this thread, we can do the trick by modifying some .h file under /usr/include, which is a 'rebuilding a system' in his (my) terminology. > > The -P2 versions of the patches, which are in internal testing now and > > (barring catastrophe) should be released in two more days, have a > > workaround for this. If you set ISC_SOCKET_FDSETSIZE to a value > > larger than the existing FD_SETSIZE, it'll use that value instead. > > So, for example: > > > > $ STD_CDEFINES="-DISC_SOCKET_FDSETSIZE=4096" ./configure > > Which probably means that I am right, since recompiling your > systems probably isn't a requirement for -P2... I don't understand the comment, but anyway: Linux doesn't allow '-DFD_SETSIZE=xxxx' to work, but accepts a larger size of fd_set than FD_SETSIZE in select(). -DISC_SOCKET_FDSETSIZE=xxxx tells BIND9 to use the specified fd_set size for select(), regardless of the value of FD_SETSIZE. To summarize, if one wants to have more than FD_SETSIZE descriptors (most of which are sockets) in Linux, - on P1, some system header file must be modified, or the system has to be 'rebuilt' in some way. - on P2, one can use -DISC_SOCKET_FDSETSIZE=xxxx without touching any other parts of the OS --- JINMEI, Tatuya Internet Systems Consortium, Inc.