Tobias DiPasquale on 2 Oct 2004 20:24:02 -0000


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: [PLUG] what to do when a websites traffic exceeds servers capacity?


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Oct 2, 2004, at 9:24 AM, Marc Zucchelli wrote:
There is round robin DNS, I understand that, not 100%
sure on what load balancing and clustering entail.
But I do understand that all of these involve sending
traffic to multiple servers, 3 servers can do more
than one.

Load-balancing is an attempt to balance the demands on a service by distributed said demands over multiple real servers. This creates the illusion of a larger "virtual" server. Round-robin DNS is the earliest and poorest example of load-balancing.


"Clustering" is an oft-misused term and often implies failover more so than load-balancing, but you'll meet all sorts of people who have all different definitions for "clustering". Failover is when you have two machines per virtual node, and if the master fails, the backup takes over servicing requests for that particular node. See the heartbeat software's documentation for more information.

Most high-traffic sites will combine failover and load-balancing to provide a robust and scalable infrastructure with which to service requests.

Good places to go for this kind of information:

http://lartc.org/
http://www.linuxvirtualserver.org/
http://www.linux-ha.org/
http://www.ultramonkey.org/

For load-balancing, you'd want LVS using Direct Routing if you can manage it. That would be the fastest option. Use LVS-NAT if you can't use anything else. You should then also use failover for the LVS Director to make sure that the director does not become a single point of failure in your design.

On the cheap, you can just patch your kernel to include IMQ support and use that to shape traffic coming into the server(s) in order to keep it under a certain rate (one which you know your server can handle).

What happens when there is a database involved.  If we
have 3 servers, and 3 databases, they are all going to
contain differently information very quickly, that is
bad, how do you load balance/cluster, or whatever, a
database when it needs it?  Is it a rare case when it
does?

You could do the things that Sean mentioned, or you could use database replication services. I know that MySQL sucks at that, but Postgres is fairly good at it and there are other RDBMSs that support replication as well (SAP DB?).


If you're just using the database for authentication purposes, then look into using LDAP instead. That would be much faster and easier to manage in a HA situation such as you desire.

Hope that helps!

- --
Tobias DiPasquale
202A 04C4 2CE6 B985 8520  88D6 CD25 1A6C B9B5 1595
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (Darwin)

iD8DBQFBXw5TzSUabLm1FZURAj3/AKCa5TDisl+WdridVjzUEkGPJuZQhwCfQ6li
DbNVln5387oQM99Y/bF48Ik=
=SlzW
-----END PGP SIGNATURE-----

___________________________________________________________________________
Philadelphia Linux Users Group         --        http://www.phillylinux.org
Announcements - http://lists.phillylinux.org/mailman/listinfo/plug-announce
General Discussion  --   http://lists.phillylinux.org/mailman/listinfo/plug