初学者 Linux chrt 命令教程(5 个示例)
在此页
- Linux chrt 命令
- Q1。如何使用 chrt 命令?
- Q2。如何让 chrt 显示最小/最大有效优先级?
- Q3。如何设置调度策略为SCHED_BATCH?
- Q4。如何设置调度策略为SCHED_FIFO?
- Q5。如何将调度策略设置为 SCHED_OTHER?
- 结论
进程构成了正在运行的 Linux 系统的核心。当程序转换为进程时(即执行时),会设置很多属性。有时,您可能希望在运行时更改这些属性。有一个命令行工具 chrt 可以让您执行此操作。
在本教程中,我们将通过一些易于理解的示例来讨论该实用程序。但在此之前,值得一提的是,本文中的所有示例都已在 Ubuntu 18.04 LTS 机器上进行了测试。
Linux chrt 命令
正如在上面的介绍部分中已经提到的,chrt 命令允许您操作进程的实时属性。以下是它的语法:
chrt [options] -p [prio] pid
以下是工具手册页对其的解释:
chrt sets or retrieves the real-time scheduling attributes of an exist?
ing pid, or runs command with the given attributes. Both policy (one
of SCHED_OTHER, SCHED_FIFO, SCHED_RR, SCHED_BATCH, or SCHED_IDLE) and
priority can be set and retrieved.
The SCHED_BATCH policy is supported since Linux 2.6.16. The SCHED_IDLE
policy is supported since Linux 2.6.23.
The SCHED_RESET_ON_FORK flag for policies SCHED_RR and SCHED_FIFO is
supported since Linux 2.6.31.
以下是一些 Q&A 风格的示例,应该可以让您对 chrt 命令的工作原理有一个很好的了解。
Q1。如何使用 chrt 命令?
假设您对操纵 gedit 进程的调度策略或优先级感兴趣。因此,您需要做的第一件事是获取此进程的进程 ID,您可以使用 pidof 命令执行此操作。
pidof gedit
例如,在我的系统上,上述命令将 pid 6063 作为输出。现在,要检索 gedit 进程的当前调度策略和优先级,请按以下方式使用 chrt:
chrt -p 6063
下面是此命令在我的系统上产生的输出:
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0
Q2。如何让 chrt 显示最小/最大有效优先级?
这可以使用 -m 命令行选项来完成。
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
在设置调度策略时,您将不得不参考这些值来设置优先级。
Q3.如何设置调度策略为SCHED_BATCH?
这可以使用 -b 命令行选项来完成。
例如:
chrt -b -p 0 6063
现在,如果您使用以下命令再次检查 gedit 的调度策略:
chrt -p 6063
您应该得到类似于以下的输出,表示您所做的更改已应用:
pid 6063's current scheduling policy: SCHED_BATCH
pid 6063's current scheduling priority: 0
Q4.如何设置调度策略为SCHED_FIFO?
这可以使用 -f 命令行选项来完成。
chrt -f -p 20 6063
正如在之前的问答中所做的那样,您可以使用 chrt -p 命令交叉验证更改。请注意,您可能需要 root 权限才能使用 -f 命令行选项。
Q5.如何将调度策略设置为 SCHED_OTHER?
这可以使用 -o 命令行选项来完成。
chrt -o -p 0 6063
要验证,请使用 chrt -p 命令。
chrt -p 6063
以下是我的案例的输出:
pid 6063's current scheduling policy: SCHED_OTHER
pid 6063's current scheduling priority: 0
结论
同意,chrt 命令不是您每天都可能使用的那种工具。哎呀,在你进入系统管理或从事一些与内核调度相关的工作之前,你甚至可能不需要它。但是,至少值得知道存在这样的工具。有关 chrt 的更多信息,请访问其手册页。