2011-07-21 10:28:32 -05:00
|
|
|
.TH IONICE "1" "July 2011" "util-linux" "User Commands"
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH NAME
|
2011-07-21 10:28:32 -05:00
|
|
|
ionice \- sets or gets process I/O scheduling class and priority
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH SYNOPSIS
|
2009-07-22 04:29:05 -05:00
|
|
|
.B ionice
|
2011-07-21 10:28:32 -05:00
|
|
|
[[ \fB\-c\fR
|
2009-07-22 04:29:05 -05:00
|
|
|
.IR class ]
|
2011-07-21 10:28:32 -05:00
|
|
|
.RB [ \fB-n\fR
|
|
|
|
.IR level ]
|
|
|
|
.RB [ \fB-t\fR ]]
|
|
|
|
.BI \fB-p\fR
|
|
|
|
PID
|
2009-07-22 04:29:05 -05:00
|
|
|
.RI [ PID ]...
|
|
|
|
.br
|
|
|
|
.B ionice
|
2011-07-21 10:28:32 -05:00
|
|
|
.RB [ \fB-c\fR
|
2009-07-22 04:29:05 -05:00
|
|
|
.IR class ]
|
2011-07-21 10:28:32 -05:00
|
|
|
.RB [ \fB-n\fR
|
|
|
|
.IR level ]
|
|
|
|
.RB [ \fB-t\fR ]
|
|
|
|
.IR COMMAND
|
|
|
|
[ ARG ]...
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH DESCRIPTION
|
2008-08-14 04:19:07 -05:00
|
|
|
This program sets or gets the io scheduling class and priority for a program.
|
2009-07-22 04:29:05 -05:00
|
|
|
If no arguments or just \fB\-p\fR is given, \fBionice\fR will query the current
|
2008-08-14 04:19:07 -05:00
|
|
|
io scheduling class and priority for that process.
|
2006-12-06 17:26:54 -06:00
|
|
|
|
2011-07-22 04:15:28 -05:00
|
|
|
If no class is given than
|
|
|
|
.I COMMAND
|
2011-07-22 04:39:06 -05:00
|
|
|
will be executed with "best-effort" scheduling class. The default
|
2011-07-22 04:15:28 -05:00
|
|
|
priority argument is 4.
|
|
|
|
|
2009-01-22 05:54:06 -06:00
|
|
|
As of this writing, a process can be in one of three scheduling classes:
|
2008-08-14 04:19:07 -05:00
|
|
|
.IP "\fBIdle\fP"
|
2006-12-06 17:26:54 -06:00
|
|
|
A program running with idle io priority will only get disk time when no other
|
|
|
|
program has asked for disk io for a defined grace period. The impact of idle
|
|
|
|
io processes on normal system activity should be zero. This scheduling
|
2008-04-28 05:23:40 -05:00
|
|
|
class does not take a priority argument. Presently, this scheduling class
|
|
|
|
is permitted for an ordinary user (since kernel 2.6.25).
|
2011-07-22 04:39:06 -05:00
|
|
|
.IP "\fBBest-effort\fP"
|
2009-01-22 05:54:06 -06:00
|
|
|
This is the effective scheduling class for any process that has not asked for
|
2008-12-27 15:39:10 -06:00
|
|
|
a specific io priority.
|
|
|
|
This class takes a priority argument from \fI0-7\fR, with lower
|
2006-12-06 17:26:54 -06:00
|
|
|
number being higher priority. Programs running at the same best effort
|
|
|
|
priority are served in a round-robin fashion.
|
|
|
|
|
2009-11-18 10:13:35 -06:00
|
|
|
Note that before kernel 2.6.26 a process that has not asked for an io priority
|
|
|
|
formally uses "\fBnone\fP" as scheduling class, but the io scheduler will treat
|
|
|
|
such processes as if it were in the best effort class. The priority within the
|
|
|
|
best effort class will be dynamically derived from the cpu nice level of the
|
|
|
|
process: io_priority = (cpu_nice + 20) / 5.
|
|
|
|
|
|
|
|
For kernels after 2.6.26 with CFQ io scheduler a process that has not asked for
|
|
|
|
an io priority inherits CPU scheduling class. The io priority is derived from
|
|
|
|
the cpu nice level of the process (same as before kernel 2.6.26).
|
|
|
|
|
2011-07-22 04:39:06 -05:00
|
|
|
.IP "\fBRealtime\fP"
|
2006-12-06 17:26:54 -06:00
|
|
|
The RT scheduling class is given first access to the disk, regardless of
|
|
|
|
what else is going on in the system. Thus the RT class needs to be used with
|
|
|
|
some care, as it can starve other processes. As with the best effort class,
|
|
|
|
8 priority levels are defined denoting how big a time slice a given process
|
2007-09-20 07:33:31 -05:00
|
|
|
will receive on each scheduling window. This scheduling class is not
|
|
|
|
permitted for an ordinary (i.e., non-root) user.
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH OPTIONS
|
2011-07-21 10:28:32 -05:00
|
|
|
.TP
|
2011-07-22 04:39:06 -05:00
|
|
|
\fB\-c\fR, \fB\-\-class\fR \fICLASS\fR
|
|
|
|
The scheduling class name or number. \fI0\fR for none, \fI1\fR for realtime, \fI2\fR for
|
2009-01-16 19:38:32 -06:00
|
|
|
best-effort, \fI3\fR for idle.
|
2011-07-21 10:28:32 -05:00
|
|
|
.TP
|
|
|
|
\fB\-n\fR, \fB\-\-classdata\fR \fINUM\fR
|
2006-12-06 17:26:54 -06:00
|
|
|
The scheduling class data. This defines the class data, if the class
|
|
|
|
accepts an argument. For real time and best-effort, \fI0-7\fR is valid
|
|
|
|
data.
|
2011-07-21 10:28:32 -05:00
|
|
|
.TP
|
|
|
|
\fB\-p\fR, \fB\-\-pid\fR \fIPID\fR
|
2008-09-06 07:54:01 -05:00
|
|
|
Pass in process PID(s) to view or change already running processes. If this argument
|
2006-12-06 17:26:54 -06:00
|
|
|
is not given, \fBionice\fP will run the listed program with the given
|
|
|
|
parameters.
|
2011-07-21 10:28:32 -05:00
|
|
|
.TP
|
|
|
|
\fB\-t\fR, \fB\-\-ignore\fR
|
2008-09-06 07:54:01 -05:00
|
|
|
Ignore failure to set requested priority. If COMMAND or PID(s) is specified, run it
|
2008-04-28 06:15:26 -05:00
|
|
|
even in case it was not possible to set desired scheduling priority, what
|
2011-01-05 13:54:01 -06:00
|
|
|
can happen due to insufficient privileges or old kernel version.
|
2011-07-21 10:28:32 -05:00
|
|
|
.TP
|
|
|
|
\fB\-V\fR, \fB\-\-version\fR
|
|
|
|
Output version information and exit.
|
|
|
|
.TP
|
|
|
|
\fB\-h\fR, \fB\-\-help\fR
|
|
|
|
Display help and exit.
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH EXAMPLES
|
|
|
|
.LP
|
|
|
|
.TP 7
|
2008-08-14 04:19:07 -05:00
|
|
|
# \fBionice\fP -c 3 -p 89
|
2006-12-06 17:26:54 -06:00
|
|
|
.TP 7
|
|
|
|
Sets process with PID 89 as an idle io process.
|
|
|
|
.TP 7
|
2008-08-14 04:19:07 -05:00
|
|
|
# \fBionice\fP -c 2 -n 0 bash
|
2006-12-06 17:26:54 -06:00
|
|
|
.TP 7
|
|
|
|
Runs 'bash' as a best-effort program with highest priority.
|
|
|
|
.TP 7
|
2008-08-20 16:51:55 -05:00
|
|
|
# \fBionice\fP -p 89 91
|
2006-12-06 17:26:54 -06:00
|
|
|
.TP 7
|
2008-08-20 16:51:55 -05:00
|
|
|
Prints the class and priority of the processes with PID 89 and 91.
|
2006-12-06 17:26:54 -06:00
|
|
|
.SH NOTES
|
|
|
|
Linux supports io scheduling priorities and classes since 2.6.13 with the CFQ
|
|
|
|
io scheduler.
|
|
|
|
.SH AUTHORS
|
2011-07-22 04:39:06 -05:00
|
|
|
.nf
|
2009-04-23 06:22:27 -05:00
|
|
|
Jens Axboe <jens@axboe.dk>
|
2011-07-22 04:39:06 -05:00
|
|
|
Karel Zak <kzak@redhat.com>
|
|
|
|
.fi
|
2007-07-02 18:17:04 -05:00
|
|
|
.SH AVAILABILITY
|
2010-11-30 04:41:59 -06:00
|
|
|
The ionice command is part of the util-linux package and is available from
|
|
|
|
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
|