23.07.2014 Views

Lustre 1.6 Operations Manual

Lustre 1.6 Operations Manual

Lustre 1.6 Operations Manual

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

3.3.4 Choosing a Proper Kernel I/O Scheduler<br />

One of the many functions of the Linux kernel (indeed of any OS kernel), is to<br />

provide access to disk storage. The algorithm which decides how the kernel provides<br />

disk access is known as the "I/O Scheduler," or "Elevator." In the 2.6 kernel series,<br />

there are four interchangeable schedulers:<br />

Scheduler<br />

cfq<br />

as<br />

deadline<br />

noop<br />

Description<br />

"Completely Fair Queuing" makes a good default for most workloads on<br />

general-purpose servers. It is not a good choice for <strong>Lustre</strong> OSS nodes, however,<br />

as it introduces overhead and I/O latency.<br />

"Anticipatory Scheduler" is best for workstations and other systems with slow,<br />

single-spindle storage. It is not at all good for OSS nodes, as it attempts to<br />

aggregate or batch requests in order to improve performance for slow disks.<br />

“Deadline” is a relatively simple scheduler which tries to minimize I/O latency<br />

by re-ordering requests to improve performance. Best for OSS nodes with<br />

"simple" storage, that is software RAID, JBOD, LVM, and so on.<br />

“NOOP” is the most simple scheduler of all, and is really just a single FIFO<br />

queue. It does not attempt to optimize I/O at all, and is best for OSS nodes that<br />

have high-performance storage, that is DDN, Engenio, and so on. This scheduler<br />

may yield the best I/O performance if the storage controller has been carefully<br />

tuned for the I/O patterns of <strong>Lustre</strong>.<br />

The above observations on the schedulers are just our best advice. We strongly<br />

suggest that you conduct local testing to ensure high performance with <strong>Lustre</strong>. Also,<br />

note that most distributions ship with either “cfq” or “as” configured as the default<br />

scheduler. Choosing an alternate scheduler is an absolutely necessary step to<br />

optimally configure <strong>Lustre</strong> for the best performance. The “cfq” and “as” schedulers<br />

should never be used for server platforms.<br />

For more in-depth discussion on choosing an I/O scheduler algorithm for Linux, see:<br />

■ http://www.redhat.com/magazine/008jun05/features/schedulers<br />

■ http://www.novell.com/brainshare/europe/05_presentations/tut303.pdf<br />

■ http://kerneltrap.org/node/3851<br />

Chapter 3 Prerequisites 3-7

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!