Incremental scalability is very important in today's growing yet
competitive business environment. It is at the very minimum desirable if not critical to
"pay as you go". While no one could afford to spend unlimited budget to build
systems that are many times bigger than the present needs in anticipated "future
expansion", it would also be a mistake to build a system that goes nowhere.
Multiprocessor computers has been available for many years as an incremental scalable
solution. But is it the only solution? For certain applications, perhaps it is. For others
like web server applications certainly not. Not only is increasing system capacity by extensive upgrades not the only solution, it
may not be the best solution either.
WebMux and Web Farms
The alternative is to use WebMux and a group of web servers
together as a web farm. From the outside looking in, this whole group of servers acts as one.
The WebMux acts as a traffic cop that distributes the incoming web page requests to the
servers. Should the web traffic increase, all you need to do is add servers to the farm. But
is the WebMux and web farm approach necessarily better than the multi processor solution? In
most cases, it is. We will try to look from several different views.
On the surface adding a processor should be cheaper than adding a
whole server. But is it the true cost? In most cases, a multi processor server is
more expensive to begin with. A lot of additional design and components are required to
support multi processor function. It is also likely that the design is a proprietary one.
To upgrade, you can not simply add a processor but rather require buying an expensive
processor board. Using the web farm on the other hand, you are not locked in to any vendor. You are free to do competitive shopping whenever you need to add additional
Regardless the design, there is a limit on how many processors
you can add to a certain box. Many low-end servers are limited to two processors. Even
many high-end expensive enterprise servers are limited to no more than 16 processors. In
comparison, you can easily build a 255 server web farm with WebMux.
The performance of a server depends on several factors: the speed
of the CPU, memory, system bus and OS etc. While each server in the web farm has its own
processor, memory, OS etc, most of the system resources are shared in the multi processor
system. Any one of the factors can become a bottleneck and reduce the performances as you
adding the processor. The performance gain on the web farm is very linear by comparison.
We all know that computer technology is advancing at a blinding
speed. Today's advanced processor will be viewed as slow and outdated in a very short
period of time. In a multi processor design, you are locked in to the technology when it
is designed. An old processor may not be available in a few years. Even if you can find one, do
you want to pay top dollars for a CPU of yesteryear?
In a multi process design, the whole box is running one OS, one
type of CPU, one type of memory etc. Not much flexibility to speak of. With a WebMux farm
on the other hand, you can mix and match OS among servers using different CPU and memory
configurations. If you want, you can even add multi process or servers to farm. You can even
assign weights to different servers so that the faster ones will take more loads while the
slower ones take less. The flexibility and control is yours.
While multi processor servers are indispensable for many
applications, they are not necessarity the best and certainly not the only solution for
others like web servers. By using a scalable WebMux farm, a high performance, high
availability and high flexibility web site can be implemented with more economical use of