Linux命令-renice(修改进程优先级)
📅 2026/7/7 3:48:03
👁️ 阅读次数
📝 编程学习
Linux命令-renice(修改进程优先级)
- 命令语法
- 常用选项
- 场景化实例
- 1. 降低后台任务优先级
- 2. 提高关键服务优先级
- 3. 修改进程组优先级
- 4. 修改某用户所有进程的优先级
- 5. 自动化优先级管理
- 6. 优先级监控报告
- 7. 不同优先级执行时间对比
- nice 与 renice 对比
- 最佳实践
快速参考:renice命令用于修改已运行进程的调度优先级(nice 值),通过调整 nice 值影响进程获取 CPU 时间片的能力。nice 值范围 -20(最高优先级)到 19(最低优先级),默认值为 0。
提示:普通用户只能提高 nice 值(降低优先级),只有 root 可以降低 nice 值(提高优先级)。修改后可用
top或ps -l查看效果。
命令语法
renice[选项]优先级 目标常用选项
| 选项 | 说明 |
|---|---|
-n 值 | 指定新的 nice 值(-20 ~ 19) |
-p PID | 通过进程 ID 指定目标 |
-g PGID | 修改整个进程组的优先级 |
-u 用户名 | 修改指定用户所有进程的优先级 |
场景化实例
1. 降低后台任务优先级
# 启动 CPU 密集型任务ddif=/dev/zeroof=/tmp/test.imgbs=1Mcount=5000&PID=$!echo"进程 PID:$PID"# 查看当前优先级ps-opid,ni,comm-p$PID# 降低优先级(nice=15)renice-n15-p$PID# 确认修改ps-opid,ni,comm-p$PID2. 提高关键服务优先级
# 查看 nginx 主进程NGINX_PID=$(cat/var/run/nginx.pid)echo"Nginx PID:$NGINX_PID"# 提高优先级(需要 root)sudorenice-n-5-p$NGINX_PID# 调整所有 worker 进程forpidin$(pgrep-f"nginx: worker");dosudorenice-n-5-p"$pid"doneecho"Worker 进程优先级已提高"3. 修改进程组优先级
# 查看进程组信息ps-eopid,pgid,ni,comm|grepmyapp# 修改整个进程组sudorenice-n10-g$(pgrep-omyapp)# 验证ps-eopid,pgid,ni,comm|grepmyapp4. 修改某用户所有进程的优先级
# 限制测试用户sudorenice-n19-utestuser# 确认效果ps-utestuser-opid,ni,comm --no-headers5. 自动化优先级管理
#!/bin/bash# 自动降低批处理任务优先级LOW_PRIORITY_APPS=("updatedb""tar""gzip""bzip2""make""cc1")forappin"${LOW_PRIORITY_APPS[@]}";doforpidin$(pgrep-f"$app");docurrent_nice=$(ps-oni=-p"$pid"2>/dev/null|tr-d' ')if[-n"$current_nice"]&&["$current_nice"-lt15];thenrenice-n15-p"$pid"2>/dev/nullecho"降低$app(PID:$pid):$current_nice-> 15"fidonedone6. 优先级监控报告
#!/bin/bash# 优先级与 CPU 使用率报告echo"进程优先级报告$(date)"printf"%-8s %-4s %-6s %-20s\n""PID""NI""CPU%""COMMAND"ps-eopid,ni,pcpu,comm--sort=-pcpu|head-20|\whilereadpid ni cpu cmd;doif["$ni"!="NI"];then["$ni"-lt0]&&mark="(高)"||\["$ni"-gt10]&&mark="(低)"||mark=""printf"%-8s %-4s %-6s %-20s %s\n""$pid""$ni""$cpu""$cmd""$mark"fidone7. 不同优先级执行时间对比
#!/bin/bash# 对比不同 nice 值的影响test_nice(){localn="$1"echo"测试 nice=$n..."timenice-n"$n"bash-c'for i in {1..5000000}; do :; done'2>&1|grepreal}fornin-1001019;dotest_nice"$n"donenice 与 renice 对比
# nice: 启动时设置优先级nice-n10tarczf backup.tar.gz /data/# renice: 修改已运行进程renice-n10-p$(pidoftar)# 查看所有进程 nice 分布ps-eoni --no-headers|sort|uniq-c|sort-rn最佳实践
批处理/备份任务设为
nice 15-19,关键服务设为nice -5 到 -10。避免设为-20以免抢占内核线程。
# 日常工作流nice-n19rsync-a/data/ /backup/&# 低优先级备份sudorenice-n19-p$(pgreprsync)# 确认降低sudorenice-n-5-p$(pgrep-f"api.py")# 提高服务优先级
编程学习
技术分享
实战经验