目录
进程的优先级
基本概念
- 什么是进程优先级?
cpu资源分配的先后顺序 就是指进程的优先权(priority)
- 优先级存在的原因?
优先级存在的原因 本质上是因为资源的不足 在系统中表现为有多个进程却只有一个cpu
如何查看优先级
我们可以使用ps -l指令来查看进程
ps -l
- UID 执行者的身份ID
- PID 代表进程的代号
- PPID 代表父进程的代号
- PRI 代表进程的优先级
- NI 代表这个进程的nice值 用来修正进程的优先级
PRI与NI
- PRI 是进程的优先级 就是(轻量级)进程被CPU执行的先后顺序 此值越小进程的优先级别越高
- NI 表示进程可被执行的优先级的修正数值
- PRI和NI值的关系符合下面的公式 PRI(new) = PRI (old)+ NI
- 当NI值为负值的时候 那么该程序将会优先级值将变小 优先级会变高
- 调整进程优先级 就是调整进程的nice值
- nice的取值范围是 -20~19 一共四十个值
在Linux系统中 PRI(old)值默认为80 所以说Linux中 优先级为 PRI(new) = 80 + NI
NI值的设置范围
NI 的设置范围是固定的 必须是 -20~19 如果超出这个值 则设定的nice值会变为最接近这个区间的值
如果设定NI值为 -100 则它的值会被设置为 -20
如果设定NI值为100 则它的值会被设置为19
为什么NI值的范围被设置成这样子
因为操作系统要尽量保证每个进程的公平运行 如果我们可以随意将进程的优先级设置的很低那么操作系统就会倾向于执行这个进程 从而导致其他进程不能被很好的被cpu执行 所以说PRI值最好是在一个范围中
NI值如何修改
修改方式一 : 通过top指令修改优先级
top命令就相当于任务管理器
我们调用top命令之后会出来这样子的界面
按住 r 键 就可以输入需要调整NI值的进程PID
输入PID之后回车 再输入NI值
输入修改的NI值为15之后回车 按住q键 退出top
这是因为6646是5850的子进程 会继承父进程的代码和数据
修改方式二 : 通过renice指令修改优先级
指令为renice + NI值 + 进程号
普通用户如果想要renice 需要使用sudo指令 临