renice命令可实时调整运行中进程的cpu优先级,需指定pid、用户或进程组,普通用户仅能调高nice值,root可设-20至19,生效后可用ps或top验证ni列。

直接用 renice 命令修改,它专为已运行的进程设计,改完立刻生效,不用重启进程。
确认目标进程 PID
先找到你要调的进程号。常用方法:
-
ps aux | grep 关键词(比如
ps aux | grep rsync) -
pgrep -f 关键词(简洁,如
pgrep -f "python server.py") - top 或 htop 查看实时列表,记下 PID
执行 renice 调整
语法统一推荐带 -n 和 -p,清晰不易错:
- 把 PID 1234 的 nice 值设为 15:
sudo renice -n 15 -p 1234 - 一次调多个 PID:
sudo renice -n 10 -p 1234 5678 9012 - 按用户批量调(如所有 alice 启动的进程):
sudo renice -n 8 -u alice - 按进程组调(如 PGID 456):
sudo renice -n 5 -g 456
注意:普通用户只能对自己启动的进程调高 nice 值(即数值变大、优先级降低),且不能低于 0;root 可任意设置 -20 到 19。
验证是否生效
别只信 top 默认界面——它不显示 NI 列:
- 在
top中按f→ 方向键选中 NI → 按空格启用 → 按q退出 - 用
ps直接查:ps -o pid,ni,comm -p 1234,看输出里ni字段是否更新 - 如果值没变,可能是被 systemd 或容器自动覆盖了(比如 Docker 容器内,宿主机 renice 无效)
几个关键提醒
- nice 值只在 CPU 竞争时起作用,不影响磁盘 I/O 或内存分配
- 后台任务(如日志压缩、备份)建议设为 10~15;交互式程序(vim、ssh)保持 0,否则可能卡顿
- systemd 服务的默认 nice 值查法:
systemctl show servicename | grep Nice,修改需编辑 service 文件的[Service]段加Nice=5 - Docker 容器内进程,宿主机上的 renice 通常无效,应改用
--nice启动参数或 cgroup 控制











