4285ch04.fm Draft Document for Review May 4, 2007 11:35 am
116 Linux Performance and Tuning Guidelines
Table 4-4 Linux partitions and server environments
For a more detailed look at how Linux distributions handle file system standards, see the
Filesystem Hierarchy Standard’s home page at:
http://www.pathname.com/fhs
4.6.2 I/O elevator tuning and selection
With Linux kernel 2.6 new I/O scheduling algorithms were introduced in order to allow for
more flexibility when handling different I/O patterns. A system administrator now has to select
the best suited elevator for a given hardware and software layout. Additionally each I/O
elevator features a set of tuning options to further tailor a system towards a specific workload.

Selecting the right I/O elevator in kernel 2.6

For most server workloads, either the Complete Fair Queuing (CFQ) elevator or the deadline
elevator are an adequate choice as they are optimized for the multiuser, multiprocess
environment a typical server operates in. Enterprise distributions typically default to the CFQ
elevator. However on Linux for IBM System z, the deadline scheduler is favoured as the
default elevator. Certain environments can benefit from selecting a different I/O elevator. With
Red Hat Enterprise Linux 5.0 and Novell SUSE Linux Enterprise Server 10 the I/O schedulers
can now be selected on a per disk subsystem basis as opposed to the global setting in Red
Hat Enterprise Linux 4.0 and Novell SUSE Linux Enterprise Server 9. With the possibility of
different I/O elevators per disk subsystem, the administrator now has the possibility to isolate
a specific I/O pattern on a disk subsystem (such as write intensive workloads) and select the
appropriate elevator algorithm.
򐂰Synchronous file system access
Certain types of applications need to perform file system operations synchronously. This
may be true for databases that may even use a raw file system or for very large disk
subsystems where caching asynchronous disk accesses simply is not an option. In those
Partition Contents and possible server environments
/home A file server environment would benefit from separating out /home to its own
partition. This is the home directory for all users on the system, if there are no disk
quotas implemented, so separating this directory should isolate a user’s runaway
consumption of disk space.
/tmp If you are running a high-performance computing environment, large amounts of
temporary space are needed during compute time, then released upon completion.
/usr This is where the kernel source tree and Linux documentation (as well as most
executable binaries) are located. The /usr/local directory stores the executables that
must be accessed by all users on the system and is a good location to store custom
scripts developed for your environment. If it is separated to its own partition, then
files will not have to be reinstalled during an upgrade or re-install by simply choosing
not to have the partition reformatted.
/var The /var partition is important in mail, Web, and print server environments as it
contains the log files for these environments as well as the overall system log.
Chronic messages can flood and fill this partition. If this occurs and the partition is
not separate from the /, service interruptions are possible. Depending on the
environment, further separation of this partition is possible by separating out
/var/spool/mail for a mail server or /var/log for system logs.
/opt The installation of some third-party software products, such as Oracle’s database
server, default to this partition. If not separate, the installation will continue under /
and, if there is not enough space allocated, may fail.