renice命令用于修改正在运行的进程的优先级(nice值)。通过调整nice值,可以控制进程获取CPU时间的权重。
renice [优先级] [选项] [PID]...
renice [优先级] [选项] -p [PID]...
renice [优先级] [选项] -g [进程组]...
renice [优先级] [选项] -u [用户]...
| 参数 | 说明 |
|---|---|
优先级 |
新的nice值(范围:-20 到 19) |
-n, --priority 优先级 |
指定优先级值(必须与数值一起使用) |
-p, --pid |
操作指定的进程ID(默认) |
-g, --pgrp |
操作指定进程组的所有进程 |
-u, --user |
操作指定用户的所有进程 |
-v, --version |
显示版本信息 |
-h, --help |
显示帮助信息 |
将进程ID为1234的进程优先级调整为10:
# 查看进程当前优先级
$ ps -o pid,ni,cmd -p 1234
PID NI CMD
1234 0 /usr/bin/python3 app.py
# 调整优先级为10
$ renice 10 -p 1234
1234 (进程ID) 旧优先级为 0,新优先级为 10
# 验证修改结果
$ ps -o pid,ni,cmd -p 1234
PID NI CMD
1234 10 /usr/bin/python3 app.py
root用户可以将进程优先级提高到负值:
# 需要root权限提高优先级
$ sudo renice -5 -p 1234
1234 (进程ID) 旧优先级为 10,新优先级为 -5
# 普通用户尝试提高优先级会失败
$ renice -5 -p 1234
renice: 设置 1234 的优先级失败: 权限不够
将用户"nginx"的所有进程优先级调整为15:
# 查看nginx用户的所有进程
$ ps -u nginx -o pid,ni,cmd
PID NI CMD
2345 0 nginx: master process
2346 0 nginx: worker process
2347 0 nginx: worker process
# 调整所有nginx进程的优先级
$ sudo renice 15 -u nginx
2345 (进程ID) 旧优先级为 0,新优先级为 15
2346 (进程ID) 旧优先级为 0,新优先级为 15
2347 (进程ID) 旧优先级为 0,新优先级为 15
修改进程组ID为5678的所有进程:
# 查看进程组信息
$ ps -o pid,pgid,ni,cmd -p 2345,2346,2347
PID PGID NI CMD
2345 2345 0 nginx: master process
2346 2345 0 nginx: worker process
2347 2345 0 nginx: worker process
# 调整整个进程组的优先级
$ sudo renice 8 -g 2345
2345 (进程ID) 旧优先级为 15,新优先级为 8
2346 (进程ID) 旧优先级为 15,新优先级为 8
2347 (进程ID) 旧优先级为 15,新优先级为 8
同时修改多个进程的优先级:
# 一次性修改多个进程
$ renice 5 -p 1001 1002 1003
1001 (进程ID) 旧优先级为 0,新优先级为 5
1002 (进程ID) 旧优先级为 0,新优先级为 5
1003 (进程ID) 旧优先级为 0,新优先级为 5
使用标准的-n参数语法:
# 两种写法等价
$ renice 10 -p 1234
$ renice -n 10 -p 1234
# 也可以这样写
$ renice --priority 10 --pid 1234
top或ps找到消耗CPU的进程nice启动新进程,renice调整已有进程nice - 以指定优先级启动进程ps - 查看进程状态top - 动态显示进程信息kill - 终止进程pkill - 按名称终止进程A: nice用于启动新进程时指定优先级,renice用于修改已经运行进程的优先级。
A: 只有root用户或具有CAP_SYS_NICE权限的用户可以设置负nice值。
A: 不是,只对当前运行进程有效。进程重启后会恢复默认优先级。
A: 使用ps -o pid,ni,cmd -p [PID]或top命令查看。