誉天教育,武汉誉天,誉天ICT认证培训.png/

Datapass

数通
当前位置:首页 > 誉天学堂 > 运维 > 懂技术,更精彩!实验对照nice与pr的进程优先级

懂技术,更精彩!实验对照nice与pr的进程优先级

  • 2023/09/06

前言

上一期为大家带来了Linux进程的优先级概念,这一期将为大家分享更多的Linux进程知识,详细分析nice与pr两种不同的优先级。


在Linux中,进程优先级是指操作系统对进程进行调度和分配CPU时间的相对重要性或优先级的评估。进程优先级决定了进程在竞争CPU资源时的执行顺序。


1.png


Nice是非实时优先级,取值范围为-20到19,值越低,优先级越高;PR是实时优先级,取值范围为0-99,值越高,优先级越高;但是,无论一个进程的NICE非实时优先级是多少,对于PR实时优先级而言都为0,也就是最低优先级。


2.png


简单对比

##创建一个进程
[root@YUTIAN ~]# md5sum /dev/zero & 
[1] 3472
##此时进程nice优先级为0
[root@YUTIAN ~]# ps axo pid,nice,comm|head -n1;ps axo pid,nice,comm | grep md5 | grep -v grep 
PID NI COMMAND
3472 0 md5su
##修改该进程的NICE优先级
[root@YUTIAN ~]# renice -n -20 3472
3472 (process ID) old priority 0, new priority -20
[root@YUTIAN ~]# ps axo pid,nice,comm|head -n1;ps axo pid,nice,comm | grep md5 | grep -v grep 
PID NI COMMAND 
3472 -20 md5sum
##查看该进程的PR优先级
[root@YUTIAN ~]# chrt -p 3472
pid 3472's current scheduling policy: SCHED_OTHER
pid 3472's current scheduling priority: 0
得出结论:
无论nice值为多少,对于pr而言,都为0,pr的优先级高于nice值


实际操作对比

###系统情况:
RHEL 8.4 版本系统
2核CPU
##CPU状况
[root@YUTIAN ~]# mpstat -P ALL 
Linux 4.18.0-305.el8.x86_64 (YUTIAN.example.com) 05/29/2023 _x86_64_ (2 CPU)
03:00:57 PM CPU %usr %nice %sys %iowait %irq %soft %steal %guest %gnice %idle
03:00:57 PM all 25.61 0.01 6.84 0.25 2.08 1.64 0.00 0.00 0.00 63.57
03:00:57 PM 0 30.38 0.01 7.36 0.20 2.14 1.90 0.00 0.00 0.00 58.00
03:00:57 PM 1 21.26 0.00 6.36 0.30 2.03 1.41 0.00 0.00 0.00 68.63

##系统有两个CPU,启动两个NICE优先级为-20的进程
[root@YUTIAN ~]# nice -n -20 md5sum /dev/zero& 
[1] 4112
[root@YUTIAN ~]# nice -n -20 sha1sum /dev/zero& 
[2] 4120
##此时CPU状况,两个nice为-20的进程基本上占用了所有的CPU资源 
PID USER  PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND   
4112 root  0 -20 18720 1852 1564 R 96.0 0.0 1:37.81 md5sum   
4120 root  0 -20 18720 1756 1464 R 95.1 0.0 1:33.28 sha1sum

##启动一个 PR优先级为1的进程
[root@YUTIAN ~]# chrt -f 1 sha256sum /dev/zero&    
[1] 4422
##此时CPU状态 
PID USER  PR NI VIRT RES SHR S %CPU %MEM  TIME+ COMMAND   
4422 root  -2 0 18724 1716 1428 R 99.3 0.0 1:01.88 sha256sum  
4120 root  0 -20 18720 1756 1464 R 55.0 0.0 5:00.42 sha1sum   
4112 root  0 -20 18720 1852 1564 R 41.5 0.0 5:05.98 md5sum
##此时可以查看到,当有了一个pr为1的进程时,pr为1的进程占用一整个CPU资源,
两个nice为-20的进程加起来只占用了一个CPU的资源。

得出结论: 进程的非实时优先级无论是多少,对于实时优先级来说,都为0,也就是最低优先级,
哪怕是实时优先级为1的进程,优先级也比-20非实时优先级高


简单来说,nice非实时优先级在平常会有更多的特权,但是pr比nice具有更高的特权与优先级,所以当两者同时存在,pr具有更高的优先级。在下一期,将会为大家带来更多精彩内容,敬请期待!

返回列表
上一篇:
懂技术,更精彩!Linux进程-动态监测进程
下一篇:
懂技术,更精彩!Linux进程优先级概念
免费试听
姓名
电话
城市
咨询课程