📜  Linux 中的 chrt 命令及示例

📅  最后修改于: 2022-05-13 01:57:32.308000             🧑  作者: Mango

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