首页 > 其他分享 >cpu 优先级

cpu 优先级

时间:2023-03-29 15:22:44浏览次数:42  
标签:NI 优先级 运算 PRI CPU 进程 cpu

Linux 是一个多用户、多任务的操作系统,系统中通常运行着非常多的进程。但是 CPU 在一个时钟周期内只能运算一条指令(现在的 CPU 采用了多线程、多核心技术,所以在一个时钟周期内可以运算多条指令。 但是同时运算的指令数也远远小于系统中的进程总数),那问题来了:谁应该先运算,谁应该后运算呢?这就需要由进程的优先级来决定了。

另外,CPU 在运算数据时,不是把一个集成算完成,再进行下一个进程的运算,而是先运算进程 1,再运算进程 2,接下来运算进程 3,然后再运算进程 1,直到进程任务结束。不仅如此,由于进程优先级的存在,进程并不是依次运算的,而是哪个进程的优先级高,哪个进程会在一次运算循环中被更多次地运算。

这样说很难理解,我们换一种说法。假设我现在有 4 个孩子(进程)需要喂饭(运算),我更喜欢孩子 1(进程 1 优先级更高),孩子 2、孩子 3 和孩子 4 一视同仁(进程 2、进程 3 和进程 4 的优先级一致)。现在我开始喂饭了,我不能先把孩子 1 喂饱,再喂其他的孩子,而是需要循环喂饭(CPU 运算时所有进程循环运算)。那么,我在喂饭时(运算),会先喂孩子 1 一口饭,然后再去喂其他孩子。而且在一次循环中,先喂孩子 1 两口饭,因为我更喜欢孩子 1(优先级高),而喂其他的孩子一口饭。这样,孩子 1 会先吃饱(进程 1 运算得更快),因为我更喜欢孩子 1。

在 Linux 系统中,表示进程优先级的有两个参数:Priority 和 Nice。还记得 "ps -le" 命令吗?

[root@localhost ~]# ps -le
F S UID PID PPID C PRI NI ADDR  SZ WCHAN TTY    TIME  CMD
4 S   0   1    0 0  80  0    - 718     -   ? 00:00:01 init
1 S   0   2    0 0  80  0    -   0     -   ? 00:00:00 kthreadd
...省略部分输出... 
其中,PRI 代表 Priority,NI 代表 Nice。这两个值都表示优先级,数值越小代表该进程越优先被 CPU 处理。不过,PRI值是由内核动态调整的,用户不能直接修改。所以我们只能通过修改 NI 值来影响 PRI 值,间接地调整进程优先级。

PRI 和 NI 的关系如下:

PRI (最终值) = PRI (原始值) + NI

其实,大家只需要记得,我们修改 NI 的值就可以改变进程的优先级即可。NI 值越小,进程的 PRI 就会降低,该进程就越优先被 CPU 处理;反之,NI 值越大,进程的 PRI 值就会増加,该进程就越靠后被 CPU 处理。

修改 NI 值时有几个注意事项:
  • NI 范围是 -20~19。
  • 普通用户调整 NI 值的范围是 0~19,而且只能调整自己的进程。
  • 普通用户只能调高 NI 值,而不能降低。如原本 NI 值为 0,则只能调整为大于 0。
  • 只有 root 用户才能设定进程 NI 值为负值,而且可以调整任何用户的进程。

标签:NI,优先级,运算,PRI,CPU,进程,cpu
From: https://www.cnblogs.com/gaoyuechen/p/17269061.html

相关文章

  • Linux 系统 CPU 100% 打满了!
    1、事件昨天下午突然收到运维邮件报警,显示数据平台服务器cpu利用率达到了98.94%,而且最近一段时间一直持续在70%以上,看起来像是硬件资源到瓶颈需要扩容了,但仔细思考就会发现......
  • CPU中的指令周期、CPU周期和时钟周期
    参考资料:【浅析】CPU中的指令周期、CPU周期和时钟周期-知乎(zhihu.com) 一.指令周期指令周期:是指计算机从取指到指令执行完毕的时间计算机执行指令的过程可以分为......
  • 服务器处理能力估算(CPU、内存、存储)之二
    1  引题  但凡写过技术方案的都知道,在技术方案最终落实到工程实施部署时,必须编制出当前解决方案需要部署的IT设备及环境,包括:需要的网络环境、端口、带宽、组网......
  • Prometheus+Grafana监控服务器CPU、磁盘、内存等信息
    转载:https://huaweicloud.csdn.net/6356655dd3efff3090b5d1cc.html?spm=1001.2101.3001.6650.17&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCo......
  • 第三篇 css - 优先级 - 【 级联 和 继承 】
    概述CSS样式优先级分为两大类1、级联2、继承级联CSS级联规则决定了样式冲突时胜出的样式,这三条规则按照优先级从高到低分别为1、样式表来源......
  • 松下PLC编程 FP-XH 10轴定位 松下PLC项目实例,两台CPU间通过RS485通讯
    松下PLC编程FP-XH10轴定位松下PLC项目实例,两台CPU间通过RS485通讯,10轴定位控制。轴控制程序采用FB,直观可靠,可以重复使用,使用时只需要对fb接口赋值即可,内部已经对系统寄......
  • jmeter中通过PerfMon Metrics Collector插件监控CPU和内存等等显示ConnectException连
    一、问题定位1、jmeter中通过PerfMon Metrics Collector插件监控CPU和内存等等显示ConnectException连接超时2、定位到是因为服务器端没有启动serverAgent.sh代理,启动......
  • linux内核线程优先级配置
    linux内核线程优先级配置/*referencedriver/spi/spi.c*/#include<linux/sched/rt.h>#include<uapi/linux/sched/types.h>staticstructsched_paramparam={......
  • 逻辑运算符的优先级
    在一个表达式中,可以含有多个逻辑运算符,他们的优先级是:“!”最高“&&”次之“||”最低;逻辑运算低于所有关系运算,而“!”高于所有算术运算。第一个例子#define_CRT_SECURE_NO_W......
  • cpu使用率飙升如何排查
    第一步,使用top找到占用CPU最高的Java进程1.监控cpu运行状,显示进程运行信息列表top-c(按CPU使用率排序,键入大写的P)第二步,用 top-Hp 命令查看占用CPU最高......