Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Jun 2001 11:58:48 +0530 (IST)
From:      "Ashutosh S. Rajekar" <asr@softhome.net>
To:        Matt Dillon <dillon@earth.backplane.com>
Cc:        freebsd-hackers@FreeBSD.ORG
Subject:   Re: max kernel memory
Message-ID:  <Pine.LNX.4.21.0106201112090.1235-100000@vangogh.indranetworks.com>
In-Reply-To: <200106191653.f5JGrBW30734@earth.backplane.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tue, 19 Jun 2001, Matt Dillon wrote:

>     to handle more then 250 requests/sec.  With the connection load you
>     want to handle, the chance of the data being cacheable in ram is
>     fairly low.  So a disk-based caching proxy will drop connection 
>     performance by two orders of magnitude.

You are right, disk caching is only a backup plan; we really won't be 
comfortable with it.
Also, the idea behind all this is that you free webservers from doing
painful TCP/IP stuff, and make it just handle content related stuff, thus
your proxy boxes will act like surge protectors/shock absorbers, etc.

>     For the diskless case I don't know if you can make it to a million
>     simultanious connections, but Terry has gotten his boxes to do a hundred
>     thousand so we know that at least is doable.  But rather then spend a

Hmmm. I wonder how much TCP/IP tuning must have gone into getting this 
figure. Any comments Terry ?

>     huge amount of time trying to max out the connections you might want to
>     consider distributing the connection load across a farm of front-end
>     machines.  The cost is virtually nothing, especially if the machines
>     do not need a lot of disk.  At BEST I used a simple DNS round-robin.
>     For a more robust solution a Cisco Redirector or some similar piece of
>     hardware can distribute the connections.  This also makes maintainance
>     a whole lot easier - you can take individual machines out of the
>     cluster and then take them down for arbitrary periods of time for

Hmmm. Actually, had I had the money, I would have certainly gone for a
such an approach. But the fact is that Intel has poured money into our
firm (along other investors), and this was to support this idea of a
supposedly low-cost box. This box does have a proprietary PCI card that we
are also building (the details are NDA'ed, my lips are sealed). So
building a farm is fine, but would probably be an overkill; and the
problem here is surely gonna be a software one rather than a hardware one.

The idea is also that not only individual clients would want to place such
a box in front of their webservers, but ISPs and internet data centers
would also make such functionality available to all their clients for some 
added cost.

>     maintainance.  I would also mock the system up using user-mode
>     processes first, to get an idea of the resource requirements, before
>     spending a lot of time writing kernel modules.

We do have a rough idea of the resource requirements, and user-mode
processes are giving us more feedback about this (for systems programmers,
user mode programs are just for testing ;-)) I took a shot at writing a
kernel HTTP proxy, and it hardly seems to be difficult (it terminates
connections from clients, and sets up persistent connections to
webservers). The real fun is very likely to be in TCP/IP tuning. I mean
the idea is to allocate very minimal memory for connections that have just
come in, and only when the proxy is likely to accept the connection is the
connection upgraded to a full-fledged one. This would possibly take care
of the million connections business.

But going by the amount of customization required to be done before
FreeBSD can be used as a server OS, how about starting an independant 
volunteer effort that would go into the details about providing a really
heavy-duty FreeBSD server ? Normal distributions may continue to
provide time-sharing type of functionality, but the people who want to 
deploy FreeBSD in stressful environments would surely not hesitate to
throw in the money to buy machines with 4Gigs (even 64) of memory,
high-end processors and lotsa L2 cache, blah blah blah. Optimizations
could be of categories like: webserver, fileserver, netserver, IRC server,
FTP server, SMTP server, etc. Each of them would deal with details
involved with each protocol, and provide a server suited exactly to that
protocol. (Even a hybrid one is thinkable).

Suggestions/flames are cordially invited.

-ASR
---------------------------------------------------------------------
   ("`-''-/").___..--''"`-._     (\     Indra Networks Pvt. Ltd
    `6_ 6  )   `-.  (     ).`-.__.`)    Pune, INDIA.
    (_Y_.)'  ._   )  `._ `. ``-..-'     mailto: asr@softhome.net
  _..`--'_..-_/  /--'_.' ,'             http://www.rajekar.org
 (il),-''  (li),'  ((!.-'               http://www.indranetworks.com
---------------------------------------------------------------------
If you can count your money, you don't have a billion dollars.
		-- J. Paul Getty


To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.LNX.4.21.0106201112090.1235-100000>