*BASH User Commands Ubuntu 10.04.4 LTS Server coreutils
ionice(1)                                                            ionice(1)

       ionice - get/set program io scheduling class and priority

       ionice [[-c class] [-n classdata] [-t]] -p PID [PID]...
       ionice [-c class] [-n classdata] [-t] COMMAND [ARG]...

       This  program  sets  or gets the io scheduling class and priority for a
       program.  If no arguments or just -p is given, ionice  will  query  the
       current io scheduling class and priority for that process.

       As  of  this  writing,  a  process  can  be  in one of three scheduling

       Idle   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  activ-
              ity should be zero. This scheduling class does not take a prior-
              ity argument. Presently, this scheduling class is permitted  for
              an ordinary user (since kernel 2.6.25).

       Best effort
              This  is the effective scheduling class for any process that has
              not asked for a specific io priority.  This class takes a prior-
              ity  argument from 0-7, with 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 io priority formally uses "none" 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).

       Real time
              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.

       -c class
              The  scheduling  class. 0 for none, 1 for real time, 2 for best-
              effort, 3 for idle.

       -n classdata
              The scheduling class data. This defines the class data,  if  the
              class accepts an argument. For real time and best-effort, 0-7 is
              valid data.

       -p pid Pass in process PID(s) to view or change  already  running  pro-
              cesses.  If  this  argument  is  not  given, ionice will run the
              listed program with the given parameters.

       -t     Ignore failure to set requested priority. If COMMAND  or  PID(s)
              is  specified,  run  it  even in case it was not possible to set
              desired scheduling priority, what can happen due to insufficient
              privilegies or old kernel version.

       # ionice -c 3 -p 89

       Sets process with PID 89 as an idle io process.

       # ionice -c 2 -n 0 bash

       Runs 'bash' as a best-effort program with highest priority.

       # ionice -p 89 91

       Prints the class and priority of the processes with PID 89 and 91.

       Linux  supports  io scheduling priorities and classes since 2.6.13 with
       the CFQ io scheduler.

       Jens Axboe <jens@axboe.dk>

       The ionice command is part of the util-linux-ng package and  is  avail-
       able from ftp://ftp.kernel.org/pub/linux/utils/util-linux-ng/.

ionice                            August 2005                        ionice(1)