温馨提示×

ubuntu进程优先级怎么改

小樊
37
2026-10-15 13:49:57
栏目: 智能运维

在 Ubuntu(Linux)里,进程优先级通常通过 nice 值 和 renice 来控制。下面按常见场景说明。


一、基本概念

  • nice 值范围:-20(最高优先级)到 19(最低优先级)
  • 默认 nice 值:0
  • 普通用户:
    • 只能降低优先级(nice 值变大)
    • 不能设为负数(除非 root)
  • root 用户可以设置任意 nice 值

二、启动进程时指定优先级

1️⃣ 使用 nice 启动程序

nice -n 10 ./my_program

或

nice --adjustment=10 ./my_program

示例(低优先级):

nice -n 19 tar czf backup.tar.gz /data

示例(高优先级,需 root):

sudo nice -n -10 ./my_program

三、修改已运行进程的优先级

2️⃣ 使用 renice

renice -n 10 -p 1234
  • 1234 是 PID
  • 普通用户只能增大 nice 值

root 示例:

sudo renice -n -5 -p 1234

按用户批量修改:

sudo renice -n 5 -u username

四、查看进程优先级

3️⃣ top / htop

top
  • 看 NI 列(nice 值)
  • 看 PR 列(内核优先级)
htop

(更直观,支持鼠标操作)


五、实时优先级(高级)

如果是实时进程(如音视频、工业控制):

chrt -r -p 50 1234
  • -r:SCHED_RR
  • 优先级范围:1–99

查看:

chrt -p 1234

⚠️ 实时优先级使用不当会导致系统卡死


六、systemd 服务设置优先级

如果是服务:

[Service]
Nice=-10

或:

[Service]
CPUSchedulingPolicy=rr
CPUSchedulingPriority=50

然后:

sudo systemctl daemon-reload
sudo systemctl restart your_service

七、常见错误

❌ 普通用户:

renice -n -5 -p 1234

→ 报错:permission denied

✅ 解决:用 sudo


如果你愿意,可以告诉我:

  • 是命令行程序还是服务
  • 想提高还是降低优先级
  • 是否服务器 / 桌面环境

我可以给你更精确的命令。

0 踩