Networking: A Beginner's Guide
to do so quickly. While it's true that a modern PCI bus can handle 33 MHz at 32 bits, this
just isn't enough in a high-end server. Many servers must handle multiple NICs (each
running at speeds up to 100 Mbps or even 1 Gbps) and multiple disk controllers running
at speeds up to 40 Mbps. If those devices are busy at the same time, even a PCI bus will
quickly get saturated.
Thus, server manufacturers need to get around bus speed limitations. The
manufacturers use several schemes to do so. One way is by using multiple buses in a
single system. For example, some of HP's Netserver servers use three PCI buses that
can all run at full speed simultaneously. Just by using a little planning in placing certain
peripherals on the different buses, you can greatly increase the system's overall speed.
Another important part of any server is its installed memory. Servers cache data from
the network and from the server's disks to achieve the best possible performance, and
they rely heavily on their RAM to do this. For example, most NOSs cache the entire
directory of files they store for quick access. They also keep requested files in the cache
for an extended period of time, in case the data from the file is needed again. They
also buffer writes to the system's disk through write caches in RAM and perform the
actual disk writes asynchronously, so the disks are not as much of a bottleneck as they
otherwise would be.
For most servers, 1GB of RAM should be considered a bare minimum. For heavy-
duty database servers supporting hundreds of users, you almost certainly will want
multiple gigabytes of RAM to achieve the best possible performance.
How much RAM do you really need for your server? This is hard to say because a lot
depends on how the server is used. The good news is that both the Windows family of servers and
Novell NetWare provide statistics showing how the memory in the system is used. You can use this
information to help determine when more memory would be beneficial. For the Windows family of
server operating systems, use Performance Monitor to see how memory and the system swap file
are being used. For Novell NetWare, use the cache statistics in the console's MONITOR program.
Also, most high-end databases (like Oracle's) will provide memory use information to help you
determine the amount of RAM that will help the database to perform best.
RAM comes in three varieties: nonparity, parity, and error checking and correcting
(ECC). Parity RAM uses an extra bit for every byte to store a checksum of the byte's
contents. If the checksum doesn't match when the memory is read, the system stops and
reports a memory error. Nonparity memory eliminates the parity bit and therefore can't
detect any memory errors. Inexpensive desktop computers sometimes use nonparity
RAM as a cost-cutting technique, although you should avoid its use whenever possible,
even on desktop computers.
Parity-based memory has two problems. First, the system can only detect memory
errors; it can't correct them. Second, because only one bit is used to store the parity, it is
possible to "fool" the parity mechanism with a more severe error. For instance, if two bits