Linux命令拾遗-top中的%nice是啥

发布时间:2026/11/4 15:12:06

Linux命令拾遗-top中的%nice是啥 简介#这是Linux命令拾遗系列的第八篇本篇主要介绍top命令中nice%这个指标的含义以及进程优先级相关内容。在各种查看CPU使用率的工具中(如top)一般都有us%、sy%、ni%等us%与sy%含义是比较容易理解的一个是用户态CPU使用率一个是内核态CPU使用率。但ni%就比较晦涩难懂了它代表被调整过nice值的进程占用的CPU使用率很难理解对不对来看看下面的例子。调整进程nice值#首先我们使用stress命令起2个进程对CPU制造一些压力如下# 起2个吃CPU的后台进程 $ stress -c 2 # 查看两个stress进程进程号为194022、194022 $ pstree -Tp $$ bash(193921)─┬─pstree(194101) └─stress(194017)─┬─stress(194022) └─stress(194023)由于我机器是多核的操作系统会将两个stress进程调度到两个核上为了达到效果我们将这2个进程绑定到1号核上运行如下# 绑定2个stress进程到CPU的1号核上 $ taskset -pc 1 194022 $ taskset -pc 1 194023 # 然后使用top查看如下图 $ top可以看到此时%Cpu1是占满的100%两个stress进程各占50%这很好理解两个同样吃CPU进程跑在一个核上大家各分一半嘛这里需要注意一下进程的PR与NI列这两个都代表了进程的优先级PR是内核调度时使用的优先级(priority)默认20值越大优先级越低而NI是开放给用户调整的优先级(nice)默认0nice值越大则进程会表现得越谦让(nice)先让别的进程获得CPU表现为优先级越低。如下我们通过renice命令调整194023进程的nice值为5以降低它的优先级$ renice -n 5 -p 194023 $ top可以发现现在%Cpu1的us是75.7ni是24.3没被调整nice的进程194022的%CPU是75.1而调整了的进程194023的%CPU是24.6同时NI列从0变成了5PR列从20变成了25可以发现%ni的值24.3几乎等于被调整过nice值进程的CPU使用率即24.6。再看看我开头说的ni%的定义ni%代表被调整过nice值的进程占用的CPU使用率现在感觉这句话是不是再清楚不过了被调整了nice值的进程会从us%中分离出来单独显示这样当一批非常吃CPU的进程被调整nice值后调整的人就能非常清楚的知道这些进程现在占用多少CPU了。如下再通过renice命令调用194023进程的nice值为19这是nice值能设置的最大值$ renice -n 19 -p 194023 $ top可以发现194023这个进程CPU使用率更低了且%Cpu1的ni也更低了并且NI变成了19PR变成了39。PR与NI#上面可以看到PR与NI好像满足这样一种等式关系PR 20 NI那么为什么Linux要设计这两套优化级呢其实在进程执行的过程中就算你调整了进程NI值导致PR变化PR还是可以再次由CPU调度器根据需要动态调整的在这种情况下上面的公式就不成立了。并且在内核代码里PR才是CPU调度器真正使用的优化级而NI只是开放给用户修改的。另外NI值是给普通进程使用的范围是[-20 ~ 19]共39个级别对应PR就是[0 ~ 39]。而PR的取值范围可以是[-100 ~ 39]共139个级别其中[-100, -1]是给实时进程用的。所以在Linux中PR大于0是普通进程小于0是实时进程。注在top中会看到 PR rt 的进程这个rt等同于-100可以发现对于普通进程不管用户怎么调整NI值进程的PR都不会低于0也就是保证所有实时进程的优先级都要大于普通进程像Linux中的一些内核进程就是实时进程(如migration/0)必须保证他们被优先执行。如下在Linux中可以通过chrt命令查看内核支持的实时进程调度策略$ chrt -m SCHED_OTHER min/max priority : 0/0 SCHED_FIFO min/max priority : 1/99 SCHED_RR min/max priority : 1/99 SCHED_BATCH min/max priority : 0/0 SCHED_IDLE min/max priority : 0/0 SCHED_DEADLINE min/max priority : 0/0是的你会发现SCHED_FIFO/SCHED_RR策略都有[1,99]共99个实时优先级(real_time_priority)可用它和PR的关系是PR -1 - real_time_priority。如下之前通过增大NI值而降低了优先级的194023进程我再把它修改为实时进程# 设置194023进程为实时进程调度策略为SCHED_RR实时优先级为10PR -1 -10 -11 $ sudo chrt --rr --pid 10 194023 # 查看实时优先级 $ chrt -p 194023 pid 194023s current scheduling policy: SCHED_RR pid 194023s current scheduling priority: 10 # 再看CPU使用率 $ top可以看到194023被调整为实时进程后把CPU占满了没有给同核心运行的普通进程194022留下任何CPU时间。所以实时进程的调度是抢占式的只要其不结束低优先级进程完全没有机会使用CPU而对于普通进程而言多少会留一点CPU时间给其它低优先级的普通进程使用的。另外使用ps -l也可以查看进程的PR与NI如下$ ps -lp 194022 194023 F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD 1 R 0 194022 194017 97 80 0 - 964 - ? 1943:32 stress -c 2 1 R 0 194023 194017 2 49 - - 964 - ? 52:08 stress -c 2看PRI这一列可以发现194022在top中是20在ps中是80而194023在top中是-11在ps中是49它们都相差60。是的他们含义是一致的只是显示的基准值不同而已top中0以下代表实时进程而ps -l中60以下代表实时进程。
延伸阅读

更多相关文章

2026/11/3 21:46:19

大模型系统提示词泄露全解析:从原理到防御的实战指南

1. 先聊聊这个标题到底在说什么如果你最近在逛技术社区、刷 AI 相关的资讯,大概率会频繁撞见system_prompts_leaks这个关键词。它并不是某个具体项目的代号,而是指过去一年里在 LLM 应用领域掀起巨浪的一类现象:大语言模型的系统提示词&#…

2026/11/4 15:07:35

2026北京网站建设公司TOP10与选型指南

1. 北京网站建设行业现状与需求分析 2026年的北京网站建设市场呈现出明显的专业化、细分化趋势。作为全国科技创新中心,北京聚集了大量高新技术企业和互联网公司,对网站建设的需求已经从简单的"线上名片"升级为"数字化营销门户"。根…

2026/11/4 15:07:35

KTV设计装修行业创新:元派对如何重塑标准

1. KTV设计装修行业的变革者:元派对如何重塑行业标准 在娱乐消费升级的大背景下,KTV行业正经历着从传统量贩式向主题化、场景化、社交化的转型。作为这个领域的专业设计装修服务商,元派对KTV设计装饰公司通过独特的商业模式和创新的技术应用&…

2026/11/4 15:07:35

高压输电线路规划:GIS与数字孪生技术应用

1. 项目背景与核心价值高压架空输电线路路径规划是电力系统设计中最具挑战性的环节之一。这个看似简单的"画线"工作,实际上需要考虑地形地貌、气象条件、电磁环境、生态保护等数十项复杂因素。我在参与某800kV特高压直流线路设计时,曾遇到一段…

2026/11/4 15:07:35

测试工程师核心技能体系与职业发展解析

1. 测试工作的核心技能体系解析 在软件开发生命周期中,测试环节的质量直接决定了最终产品的稳定性和用户体验。作为从业十二年的测试工程师,我深刻体会到这个岗位对综合能力的高要求——它远不止是简单的"找bug",而是需要构建一套完…

2026/11/4 15:07:35

高压输电线路GIS路径规划技术与工程实践

1. 高压架空输电线路路径规划概述 高压架空输电线路作为电力系统的重要组成部分,其路径规划直接关系到电网建设的经济性、安全性和可靠性。在实际工程中,我们需要综合考虑地形地貌、气象条件、环境保护、施工难度等多重因素,通过科学的方法确…

2026/11/4 15:02:33

手眼方案怎么选:眼在手上与眼在手外的工程对比

机械臂做视觉引导,绕不开的第一个决策是相机装在哪。眼在手上(eye-in-hand)是把相机固定在末端法兰或腕部,随机械臂一起运动;眼在手外(eye-to-hand)是把相机固定在支架、龙门或工作台外侧&#…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/4 0:03:20

AI辅助技术栈评估:提升研发决策效率60%

1. 项目背景与核心价值技术决策一直是研发团队面临的重大挑战。随着技术生态的快速演进,技术栈的选择、维护和迭代变得愈发复杂。我们团队在过去两年里,先后经历了三次重大技术栈迁移,每次都需要投入大量人力进行技术评估和风险分析。直到去年…

2026/11/4 0:03:20

从生成Token到直接决策:Jev如何重塑AI Agent工程实践

1. 从"生成文字"到"拍板决策":Jev 到底在解决什么问题大多数人第一次接触大模型,脑子里建立的模型是"输入问题、输出文字"。你问它今天天气怎么样,它给你一段描述;你让它写个周报,它给你…

2026/11/4 0:03:20

32G统一内存跑大模型:内存账、TPS实测与端云分流

想在一台 32G 统一内存的小主机上把大模型跑成"日常可用",这件事我前后折腾了小半年。标题里说的这台 Mac mini M6,是我们这次讨论的目标平台,具体到手规格以实物为准;但下面这套推算方法和实测思路,对任何统…

2026/11/4 12:38:23

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/3 14:24:53

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑