[an error occurred while processing this directive]

  Linux Letter 13

The Linux Letter for September 13, 1999

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 kernel are:

1.    Turn 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

Abit: http://www.abit.com.tw/english/index.htm


Hot Tip of the Week

If you want to know what daemons are listening on your computer's TCP and UDP ports, do this:

netstat -na | grep -i listen

If you want to know who's connected to your system:

netstat -na | grep -i established

And if you omit the n from the arguments to netstat, it will resolve the IP addresses to full hostnames.

Happy computing!

Drew Dunn


Get your free email account...  TODAY!!!


The Power


[an error occurred while processing this directive]