write_expire
Similar to read_expire for write requests.
read_batch_expire
If write requests are scheduled, this is the time in
milliseconds that reads are served before pending
writes get a time slice. If writes are more important
than reads, set this value lower than read_expire.
write_batch_expire
Similar to read_batch_expire for write requests.
Deadline Scheduler
read_expire
The main focus of this scheduler is to limit the start
latency for a request to a given time. Therefore, for
each request, a deadline is calculated from the current
time plus the value of read_expire in milliseconds.
write_expire
Similar to read_expire for write requests.
fifo_batch
If a request hits its deadline, it is necessary to move
the request from the sorted I/O scheduler list to the
dispatch queue. The variable fifo_batch controls
how many requests are moved, depending on the
cost of each request.
front_merges
The scheduler normally tries to find contiguous I/O
requests and merges them. There are two kinds of
merges: The new I/O request may be in front of the
existing I/O request (front merge), or it may follow
behind the existing request (back merge). Because
most merges are back merges, you can disable the
front merge functionality by setting front_merges
to 0.
write_starved
In case some read or write requests hit their deadline,
the scheduler prefers the read requests by default.
To prevent write requests from being postponed for-
ever, the variable write_starved controls how
often read requests are preferred until write requests
are preferred over read requests.
CFQ Scheduler
back_seek_max and back_seek_penalty
The CFQ scheduler normally uses a strict ascending
elevator. When needed, it also allows small backward
seeks, but it puts some penalty on them. The maxi-
mum backward sector seek is defined with
back_seek_max, and the multiplier for the penalty
is set by back_seek_penalty.
fifo_expire_async and fifo_expire_sync
The fifo_expire_* variables define the timeout
in milliseconds for asynchronous and synchronous
I/O requests. Typically, fifo_expire_async affects
write and fifo_expire_sync affects both read
and write operations.
quantum
Defines the number of I/O requests to dispatch when
the block device is idle.
slice_async, slice_async_rq, slice_sync, and
slice_idle
These variables define the time slices a block device
gets for synchronous or asynchronous operations.
• slice_async and slice_sync represent the
length of an asynchronous or synchronous disk slice
in milliseconds.
• slice_async_rq defines for how many requests
an asynchronous disk slice lasts.
• slice_idle defines how long a sync slice may
idle.
For More Information
A lot of information about real-time implementations and
administration can be found on the Internet. The following
list contains a number of selected links:
• The cpuset feature of the kernel is explained in /usr/
src/linux/Documentation/cpusets.txt. More
detailed documentation is available from http://
techpubs.sgi.com/library/tpl/cgi-bin/
getdoc.cgi/linux/bks/SGI_Admin/books/LX
_Resource_AG/sgi_html/ch04.html, http://
www.bullopensource.org/cpuset/, and http://
lwn.net/Articles/127936/.
• An overview of CPU and I/O schedulers available in Linux
can be found at http://aplawrence.com/Linux/
linux26_features.html.
• Detailed information about the anticipatory I/O scheduler
is available at http://www.cs.rice.edu/~ssiyer/
r/antsched/antio.html and http://www.cs
.rice.edu/~ssiyer/r/antsched/.
• For more information about the deadline I/O scheduler,
refer to http://lwn.net/2002/0110/a/
io-scheduler.php3, or http://kerneltrap.org/
node/431. In your installed system, find further informa-
tion in /usr/src/linux/Documentation/block/
deadline-iosched.txt.
• The CFQ I/O scheduler is covered in detail in http://
en.wikipedia.org/wiki/CFQ.
• General information about I/O scheduling in Linux is
available at http://lwn.net/Articles/101029/,
http://lwn.net/Articles/114273/, and http://
donami.com/118.
• A lot of information about real-time can be found at
http://linuxdevices.com/articles/
AT6476691775.html.
5
Need help?
Do you have a question about the LINUX ENTERPRISE REAL TIME 10 SP1 and is the answer not in the manual?
Questions and answers