Linux是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。哪些进程先运行,哪些进程后运行,就由进程优先级来控制
PR 优先级,数值越小优先级越高。
NI 优先级,数值越小优先级越高。
问题:这两个数值是在哪里看到的?
答:
① 调整==正在运行==进程的优先级(renice)
1)使用top按"r"来调整
如果要改变某个进程的优先级,就要利用 "r" 交互命令。
改变NICE--->PR
优先级的范围:
-20——19 数字越低,优先级越高,系统会按照更多的cpu时间给该进程
注意:我们能够修改的只有 Ni 的优先级,而不能修改 Pr 的优先级。
步骤1:运行top命令,按r,会提示输入希望修改优先级的进程的PID,这里输入6451,表示想修改firewalld进程的优先级
步骤2:输入6451后回车,提示希望修改的具体数字,这个数字是从-20到19,这里输入5,数字越大,优先级别越低,所以,这里是降低了firewalld的优先级
步骤3:输入5后,按回车,会发现6451进程的NI, 从0变成了5,PR从20变成了25
2)命令行使用renice调整
命令:renice
语法:renice [NI优先级设置的数字] 想调整的进程ID
[root@localhost ~]# renice -5 6451
含义:将6451进程的NI优先级设置为-5,实际效果是提高了6451进程的优先级
注意:这里的-5代表设置成-5,不是所谓加减的关系,如果当前NI的值是10,当设置成-5后,NI的值会变为-5.
② 程序启动时指定优先级(nice),只能调整不在运行的程序。
步骤1:将程序停止
步骤2:启动并制定优先级
步骤3:确认优先级(查看优先级)
命令:nice
语法:nice [NI优先级设置的数字] 想调整的进程名
启动进程时,通常会继承父进程的 nice级别,默认为0
#ps -ef |grep crond
含义:查看crond的进程信息
目的:找出crond的PID,用于结束进程
#kill -9 crond的进程ID
含义:结束crond的进程
目的:nice只能修改不在运行的进程的优先级
#ps -ef |grep crond
含义:查看crond的进程信息
目的:确认crond进程是不是已经停止了
#nice -n -5 crond
含义:启动crond进程,将NI设置成-5
#ps -ef |grep crond
含义:查看crond的进程信息
目的:找出crond的PID,用于查看此进程的优先级
#top -p crond的进程ID