约 7868 字

约 39 分钟

#Bash 的 chrt 命令

chrt [OPTION] -p [PRIORITY] PID
chrt [OPTION] PRIORITY [COMMAND] [ARGS ...]

功能

查看或设置进程的调度策略和优先级;或以指定的进程优先级执行命令。

类型

可执行文件(/usr/bin/chrt),属于 util-linux。

参数

  • OPTION 选项:
    • -a, --all-tasks - 设置检索进程下的所有任务(线程)
    • -m, --max - 查看优先级的取值范围
    • -p, --pid - 查看或设置的进程ID
    • -v, --verbose - 显示状态信息
    • --help - 显示帮助
    • --version - 显示版本
    • 策略选项:
      • -o, --other - 将调度策略设为 SCHED_OTHER(分时调度);这是 Linux 的默认调度策略
      • -f, --fifo - 将调度策略设为 SCHED_FIFO(先进先出调度);无时间片,可能饿死所有任务
      • -r, --rr - 将调度策略设为 SCHED_RR(轮流调度);有时间片,可能饿死低优先级任务;不指定策略时默认使用此选项
      • -b, --batch - 将调度策略设为 SCHED_BATCH(批处理调度)
      • -i, --idle - 将调度策略设为 SCHED_IDLE(闲时调度);用于低优先级任务
      • -d, --deadline - 将调度策略设为 SCHED_DEADLINE(截止时间调度);在截止时间前完成的硬实时调度策略
    • 调度选项:
      • -T, --sched-runtime nanoseconds - 指定 SCHED_DEADLINE 策略的运行时参数
      • -P, --sched-period nanoseconds - 指定 SCHED_DEADLINE 策略的周期参数
      • -D, --sched-deadline nanoseconds - 指定 SCHED_DEADLINE 策略的截止时间参数
      • -R, --reset-on-fork - 使用 SCHED_RESET_ON_FORK 或 SCHED_FLAG_RESET_ON_FORK 标志
  • PRIORITY - 优先级;数值越大,优先级越高
  • COMMAND - 要执行的命令
  • ARGS - 命令的参数列表

#示例

查看优先级的取值范围

$ chrt -m
SCHED_OTHER min/max priority	: 0/0
SCHED_FIFO min/max priority	: 1/99
SCHED_RR min/max priority	: 1/99
SCHED_BATCH min/max priority	: 0/0
SCHED_IDLE min/max priority	: 0/0
SCHED_DEADLINE min/max priority	: 0/0
  • 可以看到只有 SCHED_FIFO 和 SCHED_RR 支持优先级

查看和设置进程调度策略和优先级

$ chrt -p $$                                            # 查看当前 bash 进程的调度策略和优先级
pid 944375's current scheduling policy: SCHED_OTHER
pid 944375's current scheduling priority: 0
$ sudo chrt -r -p 20 $$                                 # 将策略设为 SCHED_RR,优先级设为 20
$ chrt -p $$                                            # 再次查看当前 bash 进程的调度策略和优先级
pid 944375's current scheduling policy: SCHED_RR
pid 944375's current scheduling priority: 20

以指定的进程调度策略和优先级执行命令

$ chrt -i 0 tail -f /var/log/syslog                     # 以 SCHED_IDLE 策略执行 tail -f /var/log/syslog
  • 虽然 SCHED_IDLE 不支持优先级,但不能省略优先级参数,必须设置为 0

#推荐阅读

#手册

更新: 2026/1/18

作者: PlanC

创建: 2026/1/5