温馨提示×

debian进程优先级怎么改

小樊
61
2026-09-16 19:10:13
栏目: 智能运维

在 Debian(以及其他 Linux 发行版)里,“进程优先级”通常指 Nice 值(静态优先级) 和 调度策略(实时优先级)。下面按常见场景说明。


一、查看进程优先级

1. 使用 ps

ps -eo pid,ni,pri,comm | grep 进程名
  • NI:nice 值(-20 ~ 19,越小优先级越高)
  • PRI:内核动态优先级

2. 使用 top / htop

  • top 中按 r 可直接 renice
  • htop 中按 F7(减 nice)/ F8(加 nice)

二、启动进程时设置优先级(nice)

1. 使用 nice

nice -n 10 ./myapp
  • 默认 nice = 0
  • 普通用户只能 调低优先级(nice 增大)
  • root 可以设置 -20 ~ 19

示例(高优先级):

sudo nice -n -10 ./myapp

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

1. 使用 renice

sudo renice -n -5 -p 1234
  • -p:PID
  • 普通用户只能提高自己的 nice 值(降低优先级)

按用户批量修改:

sudo renice -n 5 -u username

四、实时进程优先级(RT 调度)

适用于对延迟敏感的程序(如音频、工业控制)

1. chrt 查看

chrt -p 1234

2. 设置调度策略

sudo chrt -f 50 ./realtime_app
  • -f:SCHED_FIFO
  • -r:SCHED_RR
  • 优先级范围:1 ~ 99

查看所有策略:

chrt -l

五、Systemd 服务设置优先级

编辑 service 文件:

[Service]
Nice=-10
# 或
CPUSchedulingPolicy=rr
CPUSchedulingPriority=50

重新加载:

sudo systemctl daemon-reload
sudo systemctl restart myservice

六、注意事项

  • 普通用户不能提高优先级(nice < 0)
  • 实时优先级滥用可能导致系统卡死
  • nice 只影响 CPU 调度,不影响 I/O 或内存

如果你有具体场景(比如:某服务太卡 / 某程序抢 CPU / Docker 容器),可以告诉我,我给你具体命令。

0 踩