[pptp-server] Help

David Luyer luyer at ucs.uwa.edu.au
Thu Jun 10 00:42:28 CDT 1999


Actually, the limits under Linux are:

  per-process filedescriptors
          - up until a few minutes ago, one per client (would limit clients
            to 256 by default, or 1024 with kernel recompile, or more with
            major libc/kernel hackery)
          - now, no relevant limit

  ttys    - currently, with a standard kernel, 256 clients
          - with Unix98 ptys and a small amount of coding, 2048

  ppp devices
          - no limit in kernel source for ppp
          - limit of 100 in dev_alloc_name() in 2.2.x

        for(i=0;i<100;i++)
        {
                sprintf(dev->name,name,i);
                if(dev_get(dev->name)==NULL)
                        return i;
        }

            best fix is probably to keep a static int ppp_maxdev so you
            don't end up doing 2000 dev_get's to allocated the 2001'th
            device.

  processes
          - 2 per client plus system processes
          - standard kernel max = 512 processes, ie 256 clients
          - i386 max = 4096 processes, ie 2048 clients

So it seems that 2048 will be the limit, if you fix a few things and
with a minor kernel mod (I could do all of these pretty easily and send
you a trivial kernel patch).  To go above 2048 the easiest approach would
be to combine pptpctrl and pppd in one process, which would get you to
4096.  Beyond there, you need to go for a select() based model, which would
be significant coding effort and require large fd-set sizes and so on.
So 4096 is the practical limit, and 2048 the easy limit.

David.





More information about the pptp-server mailing list