The Linux Letter for September
Again, another issue of the Letter hits the
stands late. Last week I lamented about the pressures of
studying, working and maintaining a cranky network of computers,
so I won't bore you with those problems again. Suffice to say
that if I had two brains, it might be possible for me to keep up
with my work instead of writing web columns at 11:00 at night.
That, of course, is a sort of clumsy segue
into this week's topic. Here at The NOSPIN Group's network
operations center, we have a lot of computers doing various and
sundry tasks. The Beowulf cluster is churning out packets for SETI@Home,
the web servers and ftp servers send you files and the mail
servers keep us in contact. But some of them do the job better
than others, and it's not just because they're faster…it's
because they're more efficient.
The old saying that two heads are better
than one isn't just a corny old saw. In computer-ese, it's a
truism. If one CPU does the job well, then two can do it much
better. And that's true, at least in an awful lot of cases. And
if you're running Linux, you can take advantage of multiple CPUs
to make your system fly.
Multiple processors are nothing new.
Mainframes have used them for a long time. But because CPUs used
to be very expensive, only the most powerful servers took
advantage of them in PCs. Obviously things have changed, and you
might benefit. But first, how about a quick history lesson?
Several years ago, Intel proposed a
specification that's become known as SMP or Symmetrical
MultiProcessing. The idea is that two or more computer
processors could operate together, sharing memory, a system bus
and hardware tasks, as long as an operating system could
properly assign processes (programs, or parts of programs) to
each processor. Soon after that, you could, if you had enough
money, buy a multiple processor 80486 system and probably find
yourself running Windows NT.
In fact, SMP systems became fairly popular
as servers because they were well equipped for handling high
levels of client activity. They really caught on with the advent
of the Pentium processor. There are tons of dual and quad
processor Pentium systems out there, and with the dramatic
reduction in processor cost, a lot of them found their way to
the desktop as workstations.
And that's about the time that Linux
emerged as a multi-processor operating system. When the 2.0.x
kernel was introduced, it became very easy to have a fast,
multiprocessor server. In fact, from a software point of view,
it became free. But the 2.0 kernels were not well designed for
SMP systems. In fact, it was entirely possible for a single
processor system to outperform a quad-processor computer of the
same speed. Clearly work needed to be done.
And, of course, work was done. The 2.2
kernels are very well optimized for multiple processing
machines. And Linux scales well for systems of two to 16
processors, with work continuing to allow even greater numbers
of processors to perform well.
But you want to know how to take advantage
of all of this, right? The first thing that you need is an SMP
capable motherboard. Almost all recent motherboards support at
least SMP 1.1, which is the standard that Linux uses. And
compiling SMP support into the kernel is as simple as clicking
on a button when you "make xconfig".
You'll find plenty of specific help at the
Linux SMP-HOWTO. But if you want to just dive in, the three
things that you must know about compiling SMP support into your
SMP support on.
2. Turn Enhanced Real Time Clock support on.
3. Turn APM off.
That's it! Sure, there are more
optimizations that you can do, and you'll find them in the HOWTO.
What about motherboards? Here at the NOSPIN
NOC, we have two systems that use two processors each. One of
them is a Pentium 233MMX system that provides mail and ftp
services (if you use ftp.fluidlight.com from the nospin.com
pages, you've used it) and the other is a dual Celeron 333
computer that we do development and domain serving with. This
system deserves special mention.
When Intel introduced the Celeron CPU, they
intended it as a low-end replacement for the Pentium. While the
CPU is much like a Pentium II or Pentium III, it was designed
for the cheapest computers. It had certain features specifically
disabled, especially multiprocessor support. But it didn't take
long for some enterprising individuals to figure out how to
enable multiprocessor support. And now you can purchase daughter
cards that allow you to mount your Socket 370 Celeron in a Slot
1 motherboard. Even more exciting, one company, Abit, has
released a dual Socket 370 motherboard that allows you to
directly install two Celeron CPUs. This is the board that we use
in the NOC.
You should expect to see a performance
increase when you use a dual processor motherboard. You
shouldn't, however, expect a 100% increase in speed. But gains
of 40%-75% aren't uncommon, depending upon the software's
optimization for multiple processors.
Generally speaking, if you've got a lot of
memory, plenty of hard drive space and decent peripheral cards,
but you want to squeeze a bit more power out of your system,
multiple processors may be the next step for you to take!
Intel Corporation: http://www.intel.com
Linux HOWTOs: http://www.linux.org
The NOSPIN NOC: http://www.nospin.org