141 lines
4.5 KiB
Groff
141 lines
4.5 KiB
Groff
.TH IONICE 1 "July 2011" "util-linux" "User Commands"
|
|
.SH NAME
|
|
ionice \- set or get process I/O scheduling class and priority
|
|
.SH SYNOPSIS
|
|
.B ionice
|
|
.RB [ \-c
|
|
.IR class ]
|
|
.RB [ \-n
|
|
.IR level ]
|
|
.RB [ \-t ]
|
|
.B \-p
|
|
.IR PID ...
|
|
.br
|
|
.B ionice
|
|
.RB [ \-c
|
|
.IR class ]
|
|
.RB [ \-n
|
|
.IR level ]
|
|
.RB [ \-t ]
|
|
.B \-P
|
|
.IR PGID ...
|
|
.br
|
|
.B ionice
|
|
.RB [ \-c
|
|
.IR class ]
|
|
.RB [ \-n
|
|
.IR level ]
|
|
.RB [ \-t ]
|
|
.B \-u
|
|
.IR UID ...
|
|
.br
|
|
.B ionice
|
|
.RB [ \-c
|
|
.IR class ]
|
|
.RB [ \-n
|
|
.IR level ]
|
|
.RB [ \-t ]
|
|
.IR "command " [ argument ...]
|
|
.SH DESCRIPTION
|
|
This program sets or gets the I/O scheduling class and priority for a program.
|
|
If no arguments or just \fB\-p\fR is given, \fBionice\fR will query the current
|
|
I/O scheduling class and priority for that process.
|
|
|
|
When \fIcommand\fR is given,
|
|
.B ionice
|
|
will run this command with the given arguments.
|
|
If no \fIclass\fR is specified, then
|
|
.I command
|
|
will be executed with the "best-effort" scheduling class. The default
|
|
priority level is 4.
|
|
|
|
As of this writing, a process can be in one of three scheduling classes:
|
|
.IP "\fBIdle\fP"
|
|
A program running with idle I/O priority will only get disk time when no other
|
|
program has asked for disk I/O for a defined grace period. The impact of an
|
|
idle I/O process on normal system activity should be zero. This scheduling
|
|
class does not take a priority argument. Presently, this scheduling class
|
|
is permitted for an ordinary user (since kernel 2.6.25).
|
|
.IP "\fBBest-effort\fP"
|
|
This is the effective scheduling class for any process that has not asked for
|
|
a specific I/O priority.
|
|
This class takes a priority argument from \fI0-7\fR, with a lower
|
|
number being higher priority. Programs running at the same best-effort
|
|
priority are served in a round-robin fashion.
|
|
|
|
Note that before kernel 2.6.26 a process that has not asked for an I/O priority
|
|
formally uses "\fBnone\fP" as scheduling class, but the I/O 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 the CFQ I/O scheduler, a process that has not asked
|
|
for an I/O priority inherits its CPU scheduling class. The I/O priority is derived
|
|
from the CPU nice level of the process (same as before kernel 2.6.26).
|
|
|
|
.IP "\fBRealtime\fP"
|
|
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
|
|
will receive on each scheduling window. This scheduling class is not
|
|
permitted for an ordinary (i.e., non-root) user.
|
|
.SH OPTIONS
|
|
.TP
|
|
.BR \-c , " \-\-class " \fIclass\fR
|
|
Specify the name or number of the scheduling class to use; \fI0\fR for none,
|
|
\fI1\fR for realtime, \fI2\fR for best-effort, \fI3\fR for idle.
|
|
.TP
|
|
.BR \-n , " \-\-classdata " \fIlevel\fR
|
|
Specify the scheduling class data. This only has an effect if the class
|
|
accepts an argument. For realtime and best-effort, \fI0-7\fR are valid data
|
|
(priority levels).
|
|
.TP
|
|
.BR \-p , " \-\-pid " \fIPID\fR...
|
|
Specify the process IDs of running processes for which to get or set the
|
|
scheduling parameters.
|
|
.TP
|
|
.BR \-P , " \-\-pgid " \fIPGID\fR...
|
|
Specify the process group IDs of running processes for which to get or set the
|
|
scheduling parameters.
|
|
.TP
|
|
.BR \-t , " \-\-ignore"
|
|
Ignore failure to set the requested priority. If \fIcommand\fR was specified,
|
|
run it even in case it was not possible to set the desired scheduling priority,
|
|
which can happen due to insufficient privileges or an old kernel version.
|
|
.TP
|
|
.BR \-h , " \-\-help"
|
|
Display help text and exit.
|
|
.TP
|
|
.BR \-u , " \-\-uid " \fIUID\fR...
|
|
Specify the user IDs of running processes for which to get or set the
|
|
scheduling parameters.
|
|
.TP
|
|
.BR \-V , " \-\-version"
|
|
Display version information and exit.
|
|
.SH EXAMPLES
|
|
.LP
|
|
.TP 7
|
|
# \fBionice\fP -c 3 -p 89
|
|
.TP 7
|
|
Sets process with PID 89 as an idle I/O process.
|
|
.TP 7
|
|
# \fBionice\fP -c 2 -n 0 bash
|
|
.TP 7
|
|
Runs 'bash' as a best-effort program with highest priority.
|
|
.TP 7
|
|
# \fBionice\fP -p 89 91
|
|
.TP 7
|
|
Prints the class and priority of the processes with PID 89 and 91.
|
|
.SH NOTES
|
|
Linux supports I/O scheduling priorities and classes since 2.6.13 with the CFQ
|
|
I/O scheduler.
|
|
.SH AUTHORS
|
|
.nf
|
|
Jens Axboe <jens@axboe.dk>
|
|
Karel Zak <kzak@redhat.com>
|
|
.fi
|
|
.SH AVAILABILITY
|
|
The ionice command is part of the util-linux package and is available from
|
|
ftp://ftp.kernel.org/pub/linux/utils/util-linux/.
|