[CentOS] Help with file descriptors

Wed Nov 28 20:55:21 UTC 2007
Guy Boisvert <boisvert.guy at videotron.ca>

Garrick Staples wrote:
> On Wed, Nov 28, 2007 at 03:03:30PM -0500, Guy Boisvert alleged:
>> Hi all!
>> 	I have a problem with CentOS 4.4 and Communigate Pro 5.0.9.  As our 
>> user number grows, we are seeing "too many files open" error messages in 
>> Communigate logs.
>> 	I spoke with Communigate tech support and they asked me to increase 
>> 	the number of file descriptors which i did.  I put 128000 as a script i 
>> made to check Communigate open files reported as high as 99000.    As i 
>> checked the Communigate log file, it reported that it "sees" 1024 
>> "available" file descriptors.
>> 	Reporting that to Communigate tech support, the guy answered:
>> "CommuniGate gets this number via getdtablesize() system call. Probably 
>> in CentOS the table has a fixed size so you need to recompile the kernel 
>> to expand it. Try upgrading CentOS to 4.5 (or whatever later version is 
>> available) "
>> 	I'm a little afraid of upgrading the server right away, i don't want 
>> 	to worsen the problem.  Or maybe it's safe to do it. I dunno.
>> 	Is there anybody on the list that can comment on what the 
>> 	Communigate tech support guy said about the "getdtablesize" thing ?
> As usual, commercial support is just making things up.  This one is easy to actually test.
>   #include <unistd.h>
>   #include <stdio.h>
>   int main (void) {
>     printf("current file limit: %d\n",getdtablesize);
>     exit (0);
>   }
> Compile it, run it, viola!

===> Voila!  (French is my first language!  Trying to help for your 
french here!)

> $ gcc getdtablesize.c
> $ ./a.out
> current file limit: 134513392
> (results will vary).

OMG!  Exactly what i needed!  It reminds me when i was coding C on a Sun 
SparcStation 10 about 15 years ago!

I did compile the code and obtained exactly the same number.

Thanks a lot Garrick!

I just replied to the TS guy @ Communigate, i just can't stand to see 
what will be his response!


Guy Boisvert