在 Linux 中,进程优先级主要通过 nice 值 和 实时优先级 来调节。下面按常见场景系统说明。
-20 到 19
0nice 值影响的是 CPU 调度权重,不是绝对顺序。
nice -n 10 command
示例:
nice -n -5 ./app
renice -n 10 -p PID
示例:
renice -n -10 -p 1234
查看 PID:
ps -ef | grep app
ps -l
或:
top
字段说明:
NI:nice 值PR:内核优先级(PR = 20 + NI)⚠️ 慎用,可能导致系统卡死
1 ~ 99chrt -p PID
chrt -r -p 50 PID
chrt -r 50 command
| 策略 | 说明 |
|---|---|
SCHED_OTHER |
普通进程(默认) |
SCHED_FIFO |
实时,先到先服务 |
SCHED_RR |
实时,时间片轮转 |
虽然不是“优先级”,但常一起用。
taskset -c 0,1 command
或:
taskset -pc 0,1 PID
[Service]
Nice=-10
CPUSchedulingPolicy=rr
CPUSchedulingPriority=50
✅ 普通程序:用 nice
✅ 后台任务:适当提高 nice(如 10)
✅ 实时任务:用 chrt,但要小心
❌ 不要随意给普通进程设置 -20
| 需求 | 命令 |
|---|---|
| 启动设置优先级 | nice -n N cmd |
| 修改运行中进程 | renice -n N -p PID |
| 实时优先级 | chrt -r -p N PID |
| 查看优先级 | ps -l / top |
| 绑定 CPU | taskset |
如果你有具体场景(比如 数据库、实时音视频、容器、服务器卡顿),可以告诉我,我可以给你更精确的调优方案。