Linux 中的 chrt 命令及示例
Linux 中的 chrt命令以操纵进程的实时属性而闻名。它设置或检索现有 PID 的实时调度属性,或运行具有给定属性的命令。
句法:
$ chrt [options] priority command [argument ...]
$ chrt [options] -p [priority] pid
政策选项:
- -b, –batch :用于将策略设置为 SCHED_BATCH。
- -d, –deadline :用于将策略设置为 SCHED_DEADLINE。
- -f, –fifo :用于将策略设置为 SCHED_FIFO。
- -i, –idle :用于将策略设置为 SCHED_IDLE。
- -o, –other :用于将策略设置为 SCHED_OTHER。
- -r, –rr :用于将策略设置为 SCHED_RR(默认)
调度选项:
- SCHED_BATCH :使用调度批处理算法。
- SCHED_FIFO :使用先进先出调度算法。这种调度方法用于批处理系统,它是非抢先的。它只实现了一个队列,该队列按照任务进入的顺序保存任务。
- SCHED_IDLE:用于运行非常低优先级的后台作业。
- SCHED_OTHER:使用默认的 Linux 分时调度算法或简单的标准循环分时策略。
- SCHED_RR使用循环调度算法,如果未指定,则用作默认算法。它是一种用于 PREEMPTIVE 调度的算法。
选项:
- -a,-- all-tasks:用于对给定pid的所有任务(线程)进行操作。
- -m, –max:用于显示最小和最大有效优先级。
- -p, –pid:对现有的给定 pid 进行操作。
- -v, –verbose:用于显示状态信息。
- -h、-help:用于显示帮助信息并退出。
- -v, –version:用于显示版本信息并退出。
例子:
- 查看当前的调度策略:首先我们要创建一个进程。让我们举个例子,Firefox 正在运行,为了找到它的 pid,我们运行以下命令:
$ pidof -s firefox
在我的情况下,pid 是 5794,这是图像
现在要检索 firefox 进程的当前调度策略和优先级,请按以下方式使用 chrt:
$ chrt -p 5794
- 将调度策略更改为SCHED_FIFO:从上面的示例中,firefox 进程的调度策略设置为SCHED_OTHER。现在要将策略更改为 SCHED_FIFO,我们可以使用以下命令:
$ sudo chrt -f -p 5794
- 更改调度策略SCHED_BATCH:从上面的例子来看,firefox进程的调度策略设置为SCHED_FIFO。现在要将策略更改为 SCHED_BATCH,我们可以使用以下命令:
$ sudo chrt -b -p 5794
- 查看最大和最小有效优先级:这可以使用 chrt 策略中提到的 -m 命令行选项来完成。
$ chrt -m