Skip to contentSkip to conversation

Increasing the FD_SETSIZE

DISCUSSION Ram Madduluri 2 participants 2 messages Apr 10, 2001

lore
Share & tools
lore
#0 lore raw

Hi,

I am having trouble with increasing the file descriptor size for my application - it opens several files for each client session (and needs to keep them open as long as the session is active, which can be upto 3 hours long). What I see from the application is "open failed in FileStreamReader::setupFile: Too many open files".

I have bumped up /proc/sys/fs/file-max to 16K, but I am failing at 2638 (cat /proc/sys/fs/file-max returns "2638 97 16384") when the number of files my app opened reached 1023.

There is a comment in /usr/include/linux/posix_types.h regarding __FD_SETSIZE being set to 1024. How can I increase this value?

Thanks,
Ram Madduluri

begin:vcard
n:Madduluri;Ram
x-mozilla-html:FALSE
url:http://www.kasenna.com
org:Kasenna Inc
adr:;;;;;;
version:2.1
email;internet:[email protected]
x-mozilla-cpt:;864
fn:Ram Madduluri
end:vcard

#1 lore raw
Quoted 7 lines

I am having trouble with increasing the file descriptor size for my application - it opens several files for each client session (and needs to keep them open as long as the session is active, which can be upto 3 hours long). What I see from the application is "open failed in FileStreamReader::setupFile: Too many open files".

Quoted 6 lines

I have bumped up /proc/sys/fs/file-max to 16K, but I am failing at 2638 (cat /proc/sys/fs/file-max returns "2638 97 16384") when the number of files my app opened reached 1023.

There is a comment in /usr/include/linux/posix_types.h regarding __FD_SETSIZE being set to 1024. How can I increase this value?

You are tinkering with the wrong value. FD_SETSIZE affects fd_sets used in
the 'select' system call. If you don't use select (and you shouldn't) it's not an issue.

Also, tampering with the system-wide limits is the wrong approach too.
There is no problem in the kernel for you to fix.

What you are hitting is a per-process resource limit. Read the man pages on
'setrlimit' or the bash help on 'ulimit'.

DS