温馨提示×

linux进程优先级怎么改

小樊
43
2026-09-09 13:22:49
栏目: 智能运维

在 Linux 中,进程优先级通常指的是 Nice 值(NI)实时优先级(RT priority)。下面按常见场景给你说明。


一、查看进程优先级

ps -el
# 或
top
  • NI 列:Nice 值(普通进程)
  • PRI 列:内核优先级(用户一般不直接改)
  • top 中按 r 可修改 Nice 值

二、修改普通进程优先级(Nice 值)

1️⃣ 启动时指定(推荐)

nice -n 10 ./your_program
  • Nice 范围:-20(最高优先级) ~ 19(最低优先级)
  • 普通用户只能 调低优先级(增大 nice)
  • root 可以设为负值

2️⃣ 修改已运行进程

renice -n 5 -p 1234
  • 1234 是 PID
  • root 才能降低 nice(提高优先级)

三、实时进程优先级(RT)

⚠️ 危险操作,慎用

chrt -r 50 -p 1234

常用策略:

  • SCHED_FIFO
  • SCHED_RR

查看:

chrt -p 1234

普通用户一般不能设置实时优先级。


四、systemd 服务设置优先级

[Service]
Nice=-5
CPUSchedulingPolicy=rr
CPUSchedulingPriority=50

然后:

systemctl daemon-reexec
systemctl restart your.service

五、CPU 亲和性(可选)

taskset -c 0,1 -p 1234

六、常见问题

Q:为什么 renice 不起作用?

  • 你不是 root
  • 进程是实时进程
  • 被 cgroup 限制(如 Docker)

Q:优先级越高越优先?

  • Nice 越小优先级越高
  • PRI 越小越优先

如果你能告诉我:

  • 普通程序 / 服务 / 容器
  • 提高还是降低优先级

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

0