查看方式
使用top
命令,输出的下半部分信息中的进程信息中,PR
列表示进程的优先级(priority),NI
列表示进程的nice值。
如下图中,3个进程的PR
都为20,NI
都为0。
1 | top - 19:56:32 up 122 days, 5:03, 1 user, load average: 0.10, 0.07, 0.01 |
nice的含义
一般表示为NI
nice用来设置进程的优先级。取值范围为[-20, 19]。值越大,表示对别的进程越友好(越nice嘛),即优先级越低。
nice默认值为0。
子进程会继承父进程的nice值。
为进程设置nice
启动进程时指定nice值
1 | nice -n <nice值> <进程启动命令> |
修改已启动进程的nice值
1 | renice -n <新nice值> -p <进程id> |
priority的含义
一般表示为PR
进程执行优先级。
在linux内核2.6.23以及之后的版本,PR=NI+20
。(在linux内核2.6.23之前,PR=NI+20+x
,x可以为负数。x是动态调整进程执行优先级的参数。比如说,某个进程有大量的sleep,那么x会降低导致PR降低,导致优先级上升。再比如,某个进程占用了大量CPU时间,那么x会升高导致PR升高,导致优先级下降。)
CPU %ni %nice 使用率的含义
CPU %nice
,表示低优先级进程的CPU使用率。
比如我们最上面那张top命令的截图中的第三行,%ni使用率为0.0%
1 | # top命令的第三行信息如下 |
以下我们来验证。我们用stress工具来模拟一个计算型进程。(关于stress工具更详细的描述可以参见我以前写的这篇文章: stress - 系统压力模拟工具 | yoko blog )
1 | 正常启动一个计算型stress进程 |
参考链接
- Uncover the Meaning of top’s Statistics | Linux.com | The source for Linux information
- getpriority(2) - Linux manual page
- linux - What does nice mean on CPU utilization graphs? - Server Fault
本文完,作者yoko,尊重劳动人民成果,转载请注明原文出处: https://pengrl.com/p/21535/