diff options
Diffstat (limited to 'schedutils/ionice.1')
-rw-r--r-- | schedutils/ionice.1 | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/schedutils/ionice.1 b/schedutils/ionice.1 new file mode 100644 index 0000000..bbb6b7e --- /dev/null +++ b/schedutils/ionice.1 @@ -0,0 +1,141 @@ +.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), and \fI0\fR represents the highest priority level. +.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 NOTES +Linux supports I/O scheduling priorities and classes since 2.6.13 with the CFQ +I/O scheduler. +.SH EXAMPLES +.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 AUTHORS +.nf +Jens Axboe <jens@axboe.dk> +Karel Zak <kzak@redhat.com> +.fi +.SH SEE ALSO +.BR ioprio_set (2) +.SH AVAILABILITY +The ionice command is part of the util-linux package and is available from +https://www.kernel.org/pub/linux/utils/util-linux/. |