Re: IP Alias Limit

Alain Knaff (Alain.Knaff@imag.fr)
Sat, 21 Sep 1996 16:05:53 +0200


>
>
>On Sat, 21 Sep 1996, Alain Knaff wrote:
>
>Alain.Knaff} From: Alain Knaff <Alain.Knaff@imag.fr>
>Alain.Knaff} Subject: Re: IP Alias Limit
>
>Alain.Knaff} Wouldn't it be easyer to use HTTP/1.1 non-IP Virtual Hosts, as
>Alain.Knaff} described in http://www.apache.org/docs/host.html ?
>
>Bonjour Alain!
>
>It would be, but I need more than httpd.
>
>Regardless of whether I can make apache work, my real goal in this case
>is to show a "manager" that Linux can scale to something FreeBSD can do.

I see...

>It has not been easy to explain why there is an arbitrary limit placed on
>the number of open FD's, since I don't know the answer.

Good question. Especially since Linux rarely uses static arrays to
store these kinds of data, but rather linked lists or dynamically
growable arrays. Probably the limit is imposed in order to avoid
memory starvation due to excessive consumation of file descriptors.
The number of file descriptors for the whole system can be upped by
changing the define NF_FILE and recompiling the kernel. NR_FILE is
define in /usr/src/linux/include/linux/fs.h.
The number of file descriptors per user can be upped by changing
NR_OPEN in /usr/src/linux/include/linux/fs.h. If you raise it beyond
1024, you have to change __FD_SETSIZE too (which is defined in
/usr/src/linux/include/linux/posix_types.h), and recompile also any
application program that uses select and that needs that many
filedescriptors.

>The problem I am facing is that I can't fix it easily, whereas someone
>else has solved the problem with FreeBSD. If that stands, then my
>organization will lose Linux as the preferred platform. I don't want
>that to happen. I couldn't show my face if I were responsible for
>yet another big network company dumping Linux because of a misunderstanding.
>Oops, I'm starting to sound like a c.o.l.advocacy twit...
>
>So I gotta fix it :-) Or run BSD forever :-(

/usr/src/linux/include/net_alias.h contains a promising variable,
called NET_ALIAS_MAX_SLOT. Try changing that from 256 to 512 to make
room for the needed IP aliases.

Regards,

Alain