bash中nice和ionice

ionice

一个进程可以有三种调度类别:

Idle
以Idle io优先级运行的程序只会在没有其他任何程序请求磁盘I/O的情况下得到磁盘I/O处理 时间。Idle调度类型不带任何参数。从内核2.6.25,Idle调度类型可以允许普通用户使用

Best effort
对那些还没有申请一个指定的io优先级的任何进程,这是有效的调度类型。这个类型会带一 个优先级参数,0-7,数字越小,优先级越高。如果多个进程的优先级相同,Linux内核会以Round-robin轮询的方式为其提供I/O服务。

Real time
使用这个调度类型的进程会不管系统上的任何其他任务,会第一时间去访问磁盘。以此使用RT调度类型时需要小心,因为它可能会饿死其他进程(starve other processes)。同best effor一样,RT也有8个优先级。RT不允许普通用户使用。

选项:
-c: class 指定调度类型,0代表none,1代表real time,2代表best effort, 3代表idle

案例:
设置PID为18944的进程的I/O调度类型为Idle

$ sudo ionice -c 3  -p 18944   

查看PID 18944的进程的I/O调度类型和优先级

$ sudo ionice  -p 18944       

nice

nice是指niceness,即友善度、谦让度。用于进程中,表示进程的优先级,也即进程的友善度。niceness值为负时,表示高优先级,能提前执行和获得更多的资源,对应低友善度;反之,则表示低优先级,高友善度。

选项:
-n:选项后面跟具体的niceness值。niceness值的范围-20~19,小于-20或大于19的值分别记为-20和19。
默认优先级为0

案例

$ nice -n 10 vi&

查看进程的调度优先级

ps -efl

在这里插入图片描述
NI:表示进程优先级

猜你喜欢

转载自blog.csdn.net/Free_time_/article/details/107981504