selecttest tool

Shumon Huque shuque at isc.upenn.edu
Wed Jul 30 23:52:02 UTC 2008


On Wed, Jul 30, 2008 at 02:52:16PM -0700, JINMEI Tatuya / ?$B?@L at C#:H?(B wrote:
> I've written a small test tool to check if a given system (+
> operational environment) can support a given (normally large) number
> of sockets and whether and how the select() system call/function can
> support the given number of sockets.  It might be a useful check tool
> for those who are currently suffering from 'too many files' kind of
> problems with the P1 versions but cannot move to a beta and plan to
> try and deploy P2.
> 
> The test tool is available at
> http://www.jinmei.org/selecttest.tgz

I'd suggest adding code in the beginning to raise RLIMIT_NOFILE
to the processes hardlimit, eg.:

    struct rlimit rlim;

    if (getrlimit (RLIMIT_NOFILE, &rlim) == -1) {
        perror("getrlimit");
        return 1;
    }

    if (rlim.rlim_cur < rlim.rlim_max)
        rlim.rlim_cur = rlim.rlim_max;

    if (setrlimit (RLIMIT_NOFILE, &rlim) == -1) {
        perror("setrlimit");
        return 1;
    }

On a vanilla Solaris 10 system, the soft limit for open files
is only 256, so your test will fail pretty early, whereas the 
hardlimit is 65536.

--Shumon.


More information about the bind-users mailing list