A SERVICE OF

logo

4285ch04.fm Draft Document for Review May 4, 2007 11:35 am
114 Linux Performance and Tuning Guidelines
In this section we cover the characteristics and tuning options of the standard file system such
as ReiserFS and Ext3 as well as the tuning potential found in the kernel 2.6 I/O elevators.
4.6.1 Hardware considerations before installing Linux
Minimum requirements for CPU speed and memory are well documented for current Linux
distributions. Those instructions also provide guidance for the minimum disk space that is
required to complete the installation. However, they fall short on how to initially set up the disk
subsystem. Because Linux servers cover a vast assortment of work environments as server
consolidation makes its impact in data centers, one of the first questions to answer is: What is
the function of the server being installed?
A server’s disk subsystems can be a major component of overall system performance.
Understanding the function of the server is key to determining whether the I/O subsystem will
have a direct impact on performance.
Examples of servers where disk I/O is most important:
A file and print server must move data quickly between users and disk subsystems.
Because the purpose of a file server is to deliver files to the client, the server must initially
read all data from a disk.
A database server’s ultimate goal is to search and retrieve data from a repository on the
disk. Even with sufficient memory, most database servers perform large amounts of disk
I/O to bring data records into memory and flush modified data to disk.
Examples of servers where disk I/O is not the most important subsystem:
An e-mail server acts as a repository and router for electronic mail and tends to generate a
heavy communication load. Networking is more important for this type of server.
A Web server that is responsible for hosting Web pages (static, dynamic, or both) benefits
from a well-tuned network and memory subsystem.
Number of drives
The number of disk drives significantly affects performance because each drive contributes to
total system throughput. Capacity requirements are often the only consideration that is used
to determine the number of disk drives that are configured in a server. Throughput
requirements are usually not well understood or are completely ignored. The key to a
well-performing disk subsystem is maximizing the number of read-write heads that can
service I/O requests.
With RAID (redundant array of independent disks) technology, you can spread the I/O over
multiple spindles. There are two options for implementing RAID in a Linux environment:
software RAID and hardware RAID. Unless your server hardware comes standard with
hardware RAID, you may want to start with the software RAID options that come with the
Linux distributions; if a need arises, you can grow into the more efficient hardware RAID
solutions.
If it is necessary to implement a hardware RAID array, you will need a RAID controller for your
system. In this case the disk subsystem consists of the physical hard disks and the controller.
It is paramount to remember that the disk subsystem performance ultimately depends on the
number of input output requests a given device is able to handle. Once the operating system
Tip: In general, adding drives is one of the most effective changes that can be made to
improve server performance.