这一节学习进程的优先级和NICE值的设定。在CPU负荷比较高的情况下,优先级高的进程优先执行。RHEL7里面优先级=优先系数+NICE值来决定。 优先系数可以视作一个内核的静态值,因此我们呢可以通过调整NICE的大小来改变优先级。NICE的取值范围是从-20到19,数字越大,优先级越低。NICE默认为0


首先把CPU改成单核,这样便于实验,看看cpuinfo,已经是单核了

wKiom1Sy_k2BvbNMAABuYKSRjrE250.jpg


输入top,可以实时的显示CPU,NICE值的变化

RHCE 学习笔记(19) 进程的优先级_第1张图片



按住Ctrl+Shift+T, 另外打开两个终端,然后执行两个死循环的命令,会导致CPU使用率不断上升,注意他们的PID号码


RHCE 学习笔记(19) 进程的优先级_第2张图片

wKioL1Sy_xfRLEb7AABJSNVU17Q616.jpg


TOP窗口里面,可以看见CPU利用率基本是对半分,因为他们的NICE值都是默认的0

wKiom1Sy_lGTlcs0AACcoGoHJ_M164.jpg


可以通过renice命令来改变nice值,注意必须使用root权限才能更改

RHCE 学习笔记(19) 进程的优先级_第3张图片


可以看见-20的nice值具有最高的优先级,因此分配给他的cpu资源达到了95%

RHCE 学习笔记(19) 进程的优先级_第4张图片


这个时候已经有点卡了,可以通过 killall来终止进程


wKiom1Sy_lSwEMECAABWslY3Te0978.jpg



另外,在Top窗口,直接输入R也是可以更改NICE的,如下所示


RHCE 学习笔记(19) 进程的优先级_第5张图片



那么如何在一开始就指定一个NICE值来运行呢,可以在普通的命令前面加入nice -n 来预分配一个值


wKiom1Sy_lXB9hkdAABOR1Yd3Ok299.jpg


Top里面的值显示为-10 


RHCE 学习笔记(19) 进程的优先级_第6张图片