|
Subject: |
Re: Thats How Netscape does it! |
|
From: |
"Marcus J. Ranum" <mjr @
iwi .
com> |
|
Organization: |
Information Warehouse! Inc, Baltimore, MD |
|
Date: |
Wed, 15 Nov 1995 20:58:38 -0500 (EST) |
|
To: |
firewalls @
greatcircle .
com |
|
Coredump: |
Infocalypse Now!!! |
|
Phone: |
410-889-8569 |
|
Reply-to: |
mjr @
iwi .
com |
|
Url: |
<A HREF="http://iwi.com/mjr/mjr-top.html">mjr's web page</A> |
>We would also like to load balance our web server like this and
>have one address that could connect a user to any of 5 different
>machines (least heavily loaded one, or some cyclic order).
The usual way of doing this is to use a rotating DNS record,
and have N machines, with N addresses in the DNS. Then you hack up
some code (I have some that does this) which keeps the machines
heartbeating to eachother, and if one of the N is down, you have
a backup machine quickly take its IP address *too* for a while.
BSDI and most decent versions of UNIX let you have multiple IPs
for a single interface.
The idea of trying to calculate which is least heavily
loaded has relatively little merit, I expect. For a REALLY large
installation, luck-of-the-draw is going to tend to produce a
pretty smooth load level across all the systems. If you are
fielding 2,000 requests/minute, and have 10 machines, that's
200 requests/minute, and if you use luck-of-the-draw to let the
load balance itself, one machine might have to handle 250 hits
(which is actually a pretty large deviation - 10% off average).
I wouldn't bother getting fancy until I had some hard
numbers that indicated getting fancy would actually benefit
you! Don't *assume* that a naive solution is inadequate: be a
scientist and *test* it, or model it.
For some really *COOL* info on building monster web
servers, I highly recommend a paper by Dan Mosedale, which was
presented at LISA '95:
http://home.netscape.com/people/dmose/paper.ps
mjr.
Follow-Ups:
|
|