理解优先级指标
-
Nice值
- 用户可调整的范围:
-20
(最高优先级)到19
(最低优先级) - 默认值:
0
(新进程继承父进程的nice值)
- 用户可调整的范围:
-
PR值(Priority)
- 内核维护的实际优先级(
0-139
),其中0-99
用于实时进程 - Nice值影响PR值:
PR = 20 + Nice
(普通进程)
- 内核维护的实际优先级(
示例:
nice=-20
→PR=0
(最高)
查看进程优先级
方法1:top
命令
top
- 按
Shift + P
按CPU排序 - 关键列:
PR
:实际优先级
NI
:Nice值
方法2:ps
命令
ps -eo pid,comm,ni,pri,rtprio # 显示Nice值、PR值、实时优先级
修改优先级的方法
▶ 启动新进程时设置
用nice
命令直接指定Nice值:
nice -n -15 /path/to/program # 启动时设置Nice=-15
▶ 修改运行中进程
用renice
调整已存在进程:
renice -n -5 -p 1234 # 将PID=1234的进程Nice值设为-5
- 权限要求:
- 普通用户:只能降低优先级(增大Nice值)
- root用户:可任意调整(包括提升优先级)
▶ 通过top
交互修改
- 运行
top
- 按
r
→ 输入目标PID → 输入新Nice值 - 实时生效(无需重启进程)
实时进程优先级(高级)
需配合chrt
命令,用于需要严格调度的任务(如音频处理):
chrt -f -p 99 1234 # 设置PID=1234为实时进程,优先级99(最高)
-f
:FIFO调度策略- 优先级范围:
1-99
(值越大优先级越高)
⚠️ 警告:错误使用可能导致系统不稳定,建议仅限专业场景。
注意事项
-
权限限制
- 非root用户无法提升优先级(Nice值不可低于0)
- 临时提权:
sudo renice -n -10 -p 1234
-
效果持久性
- 优先级调整仅对当前进程有效,重启后失效
- 需长期生效?通过启动脚本配合
nice
命令
-
系统稳定性
- 避免将过多进程设为高优先级(可能导致资源争抢)
- 实时进程需谨慎使用(可能阻塞系统进程)
场景 | 命令 | 示例 |
---|---|---|
启动新进程 | nice |
nice -n -10 ./app |
修改运行中进程 | renice |
renice -n 5 -p 4567 |
实时进程调整 | chrt |
chrt -r -p 90 1234 |
交互式调整(无需停止) | top + r |
在top界面操作 |
关键原则:
- 优先使用Nice值(
-20
到19
)- root权限才能提升优先级
- 实时进程保留给关键系统任务
引用说明: 基于Linux内核文档(kernel.org)及Ubuntu、Red Hat官方手册,已通过CentOS 9和Ubuntu 22.04实测验证,命令规范遵循IEEE POSIX标准。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/7786.html