Building the Ultimate Linux Workstation
In 1996, Eric Raymond wrote a popular article for LJ called “Building the Perfect Box: How to Design Your Linux Workstation”. Lately, some of us have gone hardware shopping, and noticed that the hardware choices have changed a little since Eric recommended a Pentium 133 or 166 with 2GB of disk space. So, we asked Eric and some other experts to help us update the recommendations for building the ultimate Linux workstation.
Back in 1996, Eric advised Linux Journal readers to “buy one or two levels lower than commercial state-of-the-art”. That's still good advice in general. If you're trying to save money, there's a lot of price difference between a manufacturer's fastest CPU and the ones just a little slower; and your money will be better spent on more RAM or other parts.
Even though Eric's advice is still good on the planet Earth, we're building the ultimate Linux box, so we'll select the fastest CPUs we can get. Yes, CPUs, plural. With background tasks on their own CPU, your cycle-hog processes, such as MP3 encoding and the GIMP, will have the other all to themselves, and that's good news. However, if you're on a budget and are going for a general feeling of “responsiveness” when starting programs or opening files, SMP won't help much, and you'll be better off with one CPU and 10,000RPM SCSI drives than with slow drives on an SMP system.
Which CPUs? Darryl Strauss worked on the render farm of Alpha-based Linux machines that rendered many scenes in Titanic (see the February 1998 issue of Linux Journal). “I really love Alphas”, he says. “I have a dual 264 system at home and it rocks. They are also doing some great work on their upcoming boxes that will include faster processors, a faster bus and AGP graphics. The problem is that they are niche. If you have a specialized application that runs on the Alpha, you can't beat them. If you want a general-purpose system, then Intel-compatible is the way to go.”
Most of the people writing the software you want to run are testing it on Intel-architecture systems, so we'll stick with Intel's current top-of-the-line processors for now. AMD CPUs are binary-compatible with Intel, and performance-wise they can take Intel one-on-one, but currently there's no motherboard that supports two of them.
The list of available motherboards changes constantly. There are enough new motherboards coming out to sustain entire web sites with just motherboard news. How can you pick one? Jason Collins, a software engineer for VA Linux Systems and developer of the Cerberus test suite, is building his own Linux system for home use, and has some advice on selecting a motherboard. “I look at overclocking sites. If a board is stable when it's overclocked, it's going to be very stable at its intended speed”, he says.
Sam Ockman, CEO of Penguin Computing, says, “Spend some money, get a nice Tyan board.” Tyan motherboards have a reputation for reliability among the Linux system vendors. Mike Higashi is a Linux consultant who builds many of his own machines, and he recommends Asus boards.
Darryl Strauss is using the Asus P2B-DS, which is based on Intel's old but reliable 440BX chipset. The BX motherboards are still a decent choice for SMP on a budget. If you're not going SMP, the current CPU and motherboard combination of choice is an AMD Athlon on an ABit KA7-100.
When choosing a motherboard, be sure it supports ECC RAM, and enough of it for your foreseeable needs. Considering the amount of RAM in an ultimate Linux workstation and the length of time it runs, you will get bit flips if you don't use ECC. There's a new “Linux ECC” driver that provides extended logging of single-bit ECC errors, which are normally invisible. If you have a supported motherboard, you can use it for testing.
Open up a large white window on your screen, and look over the top of your monitor at something in the distance. If you can detect flicker out of your peripheral vision, your video card or monitor is bad or misconfigured. Flicker that you don't ordinarily notice can give you a headache or other health problems. Different people seem to require different refresh rates—most are around 75-85Hz. The video card in any Linux box should be capable of an adequate refresh rate. For an ultimate Linux box, you'll need that high refresh rate on a very large monitor at 24 or 32 bits per pixel. Even if you aren't interested in 3-D, get a good video card to spare your eyes.
The ultimate Linux workstation needs 3-D. Darryl Strauss says, “The up-and-coming board to watch is the Radeon,” which is ATI's entry in the 3-D graphics performance race. “Performance is about the same as the GeForce2 and they want to do open-source drivers. It's just not out for Linux yet.” Watch your favorite Linux news sites for details. As we go to press, the speed leader is the NVIDIA GeForce2, which Strauss calls, “a great board except for the license”. This January, VA Linux Systems took a hit from the UNIX vendors' crack pipe and broke ranks with the rest of the Linux community to offer a fast but proprietary 3-D package for NVIDIA cards.
Trying to plug binary-only proprietary software into the low levels of a sleek open-source environment is like pilling a cat with chopsticks, so until NVIDIA gets on the clue bus, it's safest to go with one of the second-ranked boards—either the Voodoo 5 from 3dfx, or the new Matrox G450. Jason points out that the Matrox cards are good at taking advantage of more CPU power. “With a fast CPU, you can start to approach NVIDIA's speed.”
Creative Labs used to be in the same situation as NVIDIA is now. Their top-of-the-line product, the Soundblaster Live!, wasn't supported with open-source drivers. After realizing they have nothing to lose and much to gain, Creative launched the opensource.creative.com web site last year to host an open-source driver for the Live! There's now ALSA support, too. Creative is also cosponsoring a new standard called “OpenAL”, billed as “OpenGL for audio”, that will let developers create cross-platform three-dimensional sound applications. The Live! sounds great now, and will also be your ticket to the 3-D audio show of the future. Don't forget to write “Linux” on your warranty card.
If you just need a decent basic sound card, the days of scrounging antique ISA Soundblasters or messing around with ISA Plug-and-Play are over. The Creative Ensoniq AudioPCI, model ES1371, is an inexpensive, well-supported, and, as you might be able to tell by the name, PCI card.
Servers use SCSI, because it's the best way to connect a lot of drives. Cheap desktop machines (see Jason Schmaker's article, page 88) use IDE, because motherboards include an IDE controller for free and the drives are cheaper. But the place where people are actively debating SCSI vs. IDE is in midrange or high-end desktop systems.
The very fastest drives, at 10,000 RPM, are available in SCSI versions only. So, for a true ultimate system, SCSI is best. And as you add more drives to your system, you'll appreciate the fact that SCSI doesn't hog interrupts like IDE does.
When you compare mechanically identical SCSI and IDE drives, the IDE drive will have a faster raw transfer rate, because the interface is simpler. But Eric Raymond says, “As fast as disks are getting today, the difference is effectively noise. The real advantage of SCSI (and the reason it's faster overall) comes from its extra brains.”
For our ultimate Linux box, we'll choose the latest SCSI technology, Ultra 160. You don't need Ultra 160 for the amount of SCSI bus traffic created by two drives, but (1) this the ultimate Linux box; and (2) the price differences among SCSI cards are small enough that you might as well get a card that's going to last you through several sets of drives.
Rick Moen once advised me to select hardware that's flexible enough to be incorporated into the next Linux box you build. Some of the parts you buy for your ultimate workstation today could end up in your Freenet server next year. The Adaptec 29160 is a good example of this kind of (almost) future-proof hardware. When you do upgrade to 64-bit PCI, you'll still be able to use it. The 29160 is still new enough that the kernel you got with last year's Linux distribution might not recognize it, so you might need to upgrade. Check your distribution's hardware compatibility list to find out.
Symbios is a SCSI card vendor that's popular with the Linux hardware vendors. Their cards have good performance and are well-supported too.
The money you spend on a killer SCSI card is wasted without fast drives, so choose two or more 10,000RPM drives from IBM, Quantum or Seagate. One good rule of thumb is to choose the same drives the reputable Linux system vendors are putting in their servers.
If you do decide to save money and go IDE, stick to one of the top three drive vendors mentioned above. Earlier this year, kernel hacker Andre Hedrick, the maintainer of Linux's IDE driver, tracked a user's problem to the fact that Western Digital drives don't do error checking correctly. He posted to linux-kernel, “WDC drives blow off the CRC check of UDMA.... This is BAD and STUPID.” Western Digital fired back on their web site with, “If there's a problem using these drives in Linux the problem most likely lies with the software driver and not the hard drive itself.” I'm going to believe the kernel hacker over the hardware vendor, and stay away from Western Digital drives.
Eric's advice is to put your own precious files on one drive, and your distribution on the other. That makes restoring your system after a disk crash easier. “If you have two, maybe the crashed one was your system disk, in which case you can buy another and mess around with a new Linux installation knowing your personal files are safe. Or maybe it was your home disk; in that case, you can still run and do recovery stuff and basic net communications until you can buy another home disk and restore it from backups.”
And two drives are faster than one, if (as often happens) you're dealing with both /tmp and /home, or /home and /var, simultaneously. You can also use Linux's software RAID to mirror the same set of file systems on a pair of disks. Don't rely on a spare hard drive in the same machine as the only backup for the main drive, though. Often a power supply failure can fry both drives at the same time. Back up over the Net to another system, or use tape.
The network card market is rather dull right now: Intel seems to dominate, despite some occasional complaints about hardware changing out from under the drivers and causing unpredictable problems with certain combinations of network traffic. If you're building your own box, you should be qualified to build a new kernel if you have to update the Ethernet driver.
Whatever you do, don't buy the latest hot CPU and drives and then mount them in a case with inadequate cooling, or hook them up to a flaky power supply that's going to blow out and fry everything. One of the ways a switching power supply can fail is to put the input voltage straight into the parts that are expecting 5 or 12 volts DC. That's not good.
If you live on the bleeding edge, hardware-wise, then your case, power supply and fans will outlast several motherboards and CPUs. Some people take the motherboard and CPU from what was a hot desktop box and use it in a web server. Again, think about being able to shuffle the components you buy today into another machine next year.
Mike chooses PC Power and Cooling power supplies, with Sparkle Power as a second choice. PC Power and Cooling has one called the “Silencer”, which makes a Linux box a little more pleasant to share a room with.
Choose a case with plenty of room to work inside, a side panel that's easy to remove, and several places to install fans. Mike builds quite a few heavy-duty Linux servers for small companies that don't have dedicated air-conditioned server rooms or rack space. That means he needs a tower case with a lot of cooling capacity, and he recommends Supermicro. They make a tower case with mounting points for fans in all the standard places, as well as blowing sideways across the drives. Direct airflow is absolutely required for the 10,000RPM drives that go into an ultimate Linux box. Otherwise, they will soon cook themselves.
A Canadian company, AMK, makes a series of cases called the “Overclocker's Dream”, with exhaust fans mounted in “blowholes” in the top of the case. If you don't mind keeping the top of your machine clear, blowholes are an efficient way to get the hottest air out.
Jason points out that adding fans can sometimes make heat problems worse. You can create a vortex that traps hot air near an important component or, worse, add too many exhaust fans and not enough intake fans. Hobbyists often add an extra exhaust fan or fans to try to suck out the hot air, but if you have too many fans blowing out and not enough blowing in, then the power supply, and maybe the CPU, can overheat. A typical ATX power supply has a fan on the back and a set of vents positioned somewhere above the CPUs. In normal operation, the power supply fan draws air from above the CPUs and exhausts it, cooling the power supply and helping to cool the CPUs. But if the system has too many exhaust fans, they create a negative pressure inside the case, cancel out the efforts of the power supply fan, stop the flow of air inside the power supply and turn it into an expensive toaster.
Two rules to keep in mind when adding fans to the case are first, balance the type and number of intake and exhaust fans; and second, remember that hot air rises—put intake fans low and exhaust fans high. And don't run with the case open any more than you have to. You're just opening it up to severe interference from other devices. “My cell phone rang and my computer went blaaargh”, says Jason.
Ultimate Linux boxes can be loud. Drives, CPU fans, front-panel fans, back panel fans...pretty soon it sounds like you're working inside a hovercraft. Jason Collins plans to install a “DigitalDoc 2”, available from AMK. It's a control panel that fits in a drive bay and provides thermostatic control for fans. His fans of choice are “badass” new ones from Delta that can move 32 cubic feet of air per second. Jason is also putting sound-deadening material on the sides of his case to keep it from resonating.
And, of course, you'll need a UPS. The most important benefit of having one on a workstation isn't to keep your system running during power failures. An extended blackout will drain its battery. The big benefit is that the UPS warns you when it's running on battery, giving you time to shut down cleanly.
Both APC and Tripp Lite make well-regarded UPSes with serial ports. Penguin Computing had to choose between them. Ockman says that his answer to “Why don't you sell our UPS?” was, “Why don't you GPL your control software?” So they did. APC won't even release the specs for their protocol. Until APC realizes that making their protocol available to open-source developers isn't going to result in the loss of their U-boat fleet in the Atlantic, let's put them with NVIDIA on the list of companies we'll be happy to support when they get a clue.