Most of the processors discussed in this chapter support multiple-processor operation. Servers that contain multiple processors have the following major advantages:
SMP is the multiple-CPU design used by most multiprocessor-equipped servers up to four-way designs. In a server that uses SMP, all processors use the same operating system and memory space. The operating system kernel subdivides multiple threads of a single multithreaded task or separate single-threaded tasks among the processors. Performance IssuesAt first glance, it would seem that as a single-processor system is upgraded to two or more processors, system performance would increase by the same factor as the number of processors added. The actual increase in system performance is somewhat less, however, because all processors share a common memory area and common I/O structures (expansion slots and integrated hard disk host adapters). You can estimate the overall performance boost you will obtain by adding processors to an x86 server by using the figures in Table 2.9.
The values in Table 2.9 assume that the additional processors use the same specifications as the original processor. If faster processors are used or if other upgrades are addedsuch as faster Ethernet, faster ATA, SCSI drives or arrays, or more RAMthe performance improvement could be even greater, depending on the server's primary use. The results with other server processor architectures can be even better than those shown in Table 2.9, depending on the processors, operating system used, memory size, and tasks being performed. Unfortunately, implementing a multiprocessor system doesn't guarantee improved performance. For example, a server used only for file and print sharing won't benefit from moving to a multiprocessor configuration. However, if the server performs calculations, computations, or other types of processor-intensive tasks, moving to a multiprocessor configuration can significantly improve performance. SMP and Dual-Core ProcessorsA dual-core processor provides a performance boost that is similar to the performance of two single-core processors, and a pair of dual-core processors provides a performance boost similar to the performance of a four-way server running single-core processors. With Intel, AMD, and IBM now supporting dual-core processors in their latest designs, even low-end servers can benefit from SMP multiprocessing. NUMA MultiprocessingNon-uniform Memory Access (NUMA) is a type of multiprocessing environment that enables processors to use memory that may be located on a remote bus. Servers that use NUMA typically include two or more combinations of processorscache and main memoryknown as nodes. A node is comparable to the processor and memory subsystem in an SMP server. The difference is that a NUMA server has an interconnect bus between each pair of nodes, enabling the nodes to communicate with each other to share memory and data. Unlike SMP, in which all memory has the same latency, NUMA is designed to handle local memory (memory in the current node) and remote memory (memory in another node), and compensates for the longer latency that results from a node accessing remote memory. Virtually all real-world implementations of NUMA feature cache coherency, so NUMA is sometimes called ccNUMA. NUMA is often used in the design of high-end x86 servers using the Intel Xeon MP as well as Itanium and RISC-based servers with more than four processors. Some of the current servers that support NUMA include the Hewlett-Packard Integrity rx8620, Hewlett-Packard Superdome, IBM xSeries 445, NEC Express5800, and Unisys ES7000 Aries and Orion series. These servers feature 16 to 64 processors. NUMA requires special chipset designs.
Figure 2.2 illustrates how a typical 16-way NUMA-based system, the IBM xSeries 445, is built up from two eight-way nodes, each of which contains two four-way Xeon MP-based Central Electronics Complexes (CECs). The SMP expansion ports connect each four-processor CEC to the other CEC in the same node and to the CECs in the other node. To help reduce the effects of memory latency on performance, each CEC contains 64MB of L4 memory cache (the Xeon MP processors contains L1L3 cache). Figure 2.2. A typical 16-way NUMA system, an IBM x445.Upgrading to Multiple ProcessorsIf your multiple-processorcapable x86, Itanium/Itanium 2, or RISC-based server was manufactured by a major vendor such as Dell, Hewlett-Packard, IBM, Silicon Graphics (SGI), or Sun, you can contact your vendor for additional processors. The vendor will make sure that the additional processors are compatible with your system. Servers that use a blade architecture can accommodate a large number of blades (where each blade holds a processor, memory, and support circuitry) per enclosure. For example, a Hewlett-Packard ProLiant BL10e G2 can contain up to 20 blades per enclosure. To create a more powerful server, rack mounts can be used to hold multiple enclosures.
If you built or are building your own x86 or Itanium server, you must make sure that any additional processor(s) you add will be compatible with your original processor. Use the following guidelines:
If you are building a multiprocessor server, keep in mind that most x86 server motherboards support up to four processors. However, some vendors manufacture motherboards that support up to eight AMD Opteron 8xx processors through the use of a daughterboard that fits over the original motherboard's processor section. If you need a larger server, consider a preconfigured server from a major server vendor. Tip To identify technical information about Intel processors up through the Pentium III and Pentium III Xeon, including clock speed, stepping, onboard cache memory size, and other features, download the Intel Processor Frequency ID Utility from Intel's website, at www.intel.com/support/processors/tools/frequencyid/. For current Intel processors, including Xeon, Pentium 4, and Pentium D, use the Intel Processor Identification Utility, available from http://support.intel.com/support/processors/tools/piu/. To identify AMD processors, download the AMD CPUInfo utility, available from the "AMD Processor Utilities and Updates" page at the AMD website, www.amd.com. Upgrading to a Dual-Core ProcessorIf a system uses a motherboard that supports dual-core processors, such as motherboards based on the Intel E8500 chipset for the Xeon MP or most AMD Opteron-based systems, you can replace the existing single-core processor(s) with dual-core processors. Upgrading a one-way (single-processor) system with a dual-core processor provides a performance boost just slightly lower than what you'd receive with a dual-processor upgrade. If you want to upgrade a multiprocessor system to use dual-core processors, you should replace all of its existing single-core processors with dual-core processors. Caution You must check with your system or motherboard vendor to determine whether BIOS upgrades are necessary before you can use a dual-core processor on a system with a supported chipset. Multiprocessing and Operating SystemsAll modern server operating systems are designed to use two or more single-core processors or at least one dual-core processor. However, if you are considering a four-way or larger server, you need to know the maximum number of processors supported by your operating system. Table 2.10 provides a list of popular server operating systems and the number of processors they support. For UNIX implementations, see the vendor for details.
Note x86 and Itanium servers that support two-way and higher processor configurations include a BIOS option known as MPS (Multiprocessor Support). For Linux, select MPS v1.1. For Windows NT 4.0, 2000, and Windows Server 2003, select MPS v1.4 unless you have problems with this setting; use MPS v1.1 if MPS v1.4 does not work properly. You also might need to add support for multiple processors to your operating system if you are upgrading from a single processor to a two-way or greater configuration. For Microsoft Windows, see the following documents, available from http://support.microsoft.com, for instructions and troubleshooting:
Depending on your Linux distribution, you may not need to do anything special to have support for SMP, or you might need to install an SMP kernel or recompile your Linux kernel to add SMP. For example, Red Hat Linux version 9 and above automatically detects SMP (two-way or larger) motherboards and automatically install kernels and boot loader entries for both one-way (single-processor) and SMP operation, and it automatically boots in SMP mode. You can use the LILO boot configuration utility to select the single-processor mode if necessary. See the documentation for your Linux distribution for details. |