Sometimes the most expensive machine
is not the one that provides the best performance. Your demands on
the platform hardware are based on many aspects and affect many
components. Let's discuss some of them.
This discussion relies on the specific definitions of various
hardware and operating-system terms. Although you may be familiar
with the terms below, we have explicitly provided definitions to make
sure there is no ambiguity when we discuss the hardware strategies.
- Cluster
-
A group of machines connected together to perform one big
or many small computational tasks in a reasonable time. Clustering
can also be used to provide failover, where if one machine fails, its
processes are transferred to another without interruption of service.
And you may be able to take one of the machines down for maintenance
(or an upgrade) and keep your service running—the main server
simply will not dispatch the requests to the machine that was taken
down.
- Load balancing
-
Say that users are given the name of one of your machines, but
it cannot stand the heavy load. You can use a clustering approach to
distribute the load over a number of machines (which gives you the
advantages of clustering, too). The central server, which users
access initially when they type the name of your service into their
browsers, works as a dispatcher. It redirects requests to other
machines, and sometimes the central server also collects the results
and returns them to the users.
- Network Interface Card (NIC)
-
A hardware component that allows your machine to
connect to the network. It sends and receives packets. NICs come in
different speeds, varying from 10 MBps to 10 GBps and faster. The
most widely used NIC type is the one that implements the Ethernet
networking protocol.
- Random Access Memory (RAM)
-
The memory that you have in your
computer (comes in units of 8 MB, 16 MB, 64 MB, 256 MB, etc.).
- Redundant Array of Inexpensive Disks (RAID)
-
An array of physical disks, usually
treated by the operating system as one single disk, and often forced
to appear that way by the hardware. The reason for using RAID is
often simply to achieve a high data-transfer rate, but it may also be
to get adequate disk capacity or high reliability.
Redundancy means that the system is capable of
continued operation even if a disk fails. There are various types of
RAID arrays and several different approaches to implementing them.
Some systems provide protection against failure of more than one
drive and some ("hot-swappable")
systems allow a drive to be replaced without even stopping the OS.