Linux进程管理进程优先级nice

目录

一、概述

1、简介

二、优先级范围及特性

1、优先级范围

 2、优先级的特性

三、查看进程的nice级别

四、启动 具有不同nice级别的进程

1、默认情况

2、手动启动(以sleep为例)

1)了解sleep命令

2)手动启动不同nice

五、更改现有进程的nice级别

1、创建一个睡眠示例程序

2、修改nice值


一、概述

1、简介

        Linux进程调度及多任务,每个CPU在一个时间点上只能处理一个进程,通过时间片技术,来同时运行多个程序


二、优先级范围及特性

1、优先级范围

优先级分为系统和nice优先级,在top中显示的优先级有两个,PR值和nice值。
NI:实际nice值。
PR(NI+20):将nice级别显示为映射到更大优先级队列,-20映射到0,+19映射到39。

如图优先级范围,黄色部分是nice优先级范围是-20——19这个范围是我们能更改的,黑色部分是系统优先级这个是我们无法更改的,进程的nice优先级要加上20才是进程在系统中的优先级(为了防止我们更改的一些nice优先级超过系统进程的优先级导致系统的错误)。

优先级范围

 2、优先级的特性

nice值越大:表示优先级越低,例如+19。
nice值越小:表示优先级越高,例如-20。


三、查看进程的nice级别

命令:ps  axo  pid ,command,nice

[root@localhost ~]# ps axo pid,command,nice
   PID COMMAND                      NI
     1 /usr/lib/systemd/systemd --   0
     2 [kthreadd]                    0
     4 [kworker/0:0H]              -20
     5 [kworker/u256:0]              0
     6 [ksoftirqd/0]                 0
     7 [migration/0]                 -
     8 [rcu_bh]                      0
     9 [rcu_sched]                   0
    10 [lru-add-drain]             -20
    11 [watchdog/0]                  -
    13 [kdevtmpfs]                   0
    14 [netns]                     -20
    15 [khungtaskd]                  0
    16 [writeback]                 -20
    17 [kintegrityd]               -20
    18 [bioset]                    -20
    19 [bioset]                    -20
    20 [bioset]                    -20
  

四、启动 具有不同nice级别的进程

1、默认情况

启动进程时,通常会继承父进程的nice级别,默认为0。

2、手动启动(以sleep为例)

1)了解sleep命令

命令:sleep  数字        //sleep是睡眠是等待命令后面跟的数字代表等待多少秒。

           sleep  数字   &      //加上&表示不占用前台让sleep在后台运行。

[root@localhost ~]# sleep  3            //表示要等待3秒才能执行后面的命令

[root@localhost ~]# sleep  6000  &     //等待6000秒,在后台运行不占用前台
[1] 2972                                //该进程的pid

2)手动启动不同nice

命令:nice  -n  nice值   命令

[root@localhost ~]# nice -n  -5  sleep 6000&    //将sleep 6000这个进程的nice优先级设为-5
[2] 3012                                        //该进程的pid
[root@localhost ~]# nice -n  -15  sleep 7000&    //将sleep 7000这个进程的nice优先级设为-15
[3] 3019                                        //该进程的pid
[root@localhost ~]# ps axo pid,command,nice|grep sleep    //查看sleep的进程
  3011 sleep 60                      0
  3012 sleep 6000                   -5
  3019 sleep 7000                  -15


五、更改现有进程的nice级别

1、创建一个睡眠示例程序

命令:sleep   8000  &

[root@localhost ~]# sleep 8000&
[4] 3110                            //该进程的pid

2、修改nice值

命令:renice   nice值   pid

[root@localhost ~]# renice  -20  3110                //修改3110进程的nice为-20
3110 (进程 ID) 旧优先级为 0,新优先级为 -20

[root@localhost ~]# top -d 1 -p 3110                //查看3110的动态进程信息


Cpu(s):  6.1 us,  2.0 sy,  0.0 ni, 91.8 id,  0.0 wa,  0.0 hi,  0.0 si,  0.0 st
KiB Mem :   995676 total,    72252 free,   684976 used,   238448 buff/cache
KiB Swap:  2097148 total,  2070356 free,    26792 used.   153160 avail Mem 

   PID USER      PR  NI    VIRT    RES    SHR S %CPU %MEM     TIME+ COMMAND            
  3110 root       0 -20  108052    356    280 S  0.0  0.0   0:00.00 sleep       

可以看出3110进程的系统优先级(PR)为0,nice优先级(NI)为-20。PR的值=NI的值+20。

你的点赞是对我的激励!!!

你的评论是对我的勉励!!!

你的收藏是对我的认可!!!

你的关注是我们之间距离的增进!!!

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sure云小硕

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值