在 Debian(以及其它 Linux 发行版)中,进程优先级主要通过 Nice 值 和 调度策略 来控制。下面按常见场景说明。
top / htoptop 中 NI 列就是 nice 值(范围一般是 -20 到 19)PR 是内核实际调度优先级psps -eo pid,ni,pri,comm
nice 值:
nice -n 10 ./myjob
或
nice -10 ./myjob
以高优先级运行(需 root):
sudo nice --20 ./myjob
renice -n 5 -p 1234
renice -n 10 -u username
普通用户只能提高自己的进程 nice 值(变得更“友好”)
适合对延迟敏感的程序(如音频、高频交易)
chrt查看:
chrt -p 1234
设置为 SCHED_FIFO(实时):
sudo chrt -f 50 1234
常见策略:
SCHED_OTHER(默认)SCHED_FIFOSCHED_RR⚠ 实时优先级使用不当可能导致系统卡死
在 .service 文件中:
[Service]
Nice=10
# 或
CPUSchedulingPolicy=rr
CPUSchedulingPriority=50
然后:
sudo systemctl daemon-reload
sudo systemctl restart myservice
| 需求 | 推荐方式 |
|---|---|
| 普通降权 | nice / renice |
| 提高优先级 | sudo renice -n -10 |
| 实时任务 | chrt |
| 服务常驻 | systemd 配置 |
如果你有具体场景(比如“某个 CPU 占用太高”或“实时音视频”),可以告诉我,我帮你给具体命令。