初学者 Linux chrt 命令教程(5 个示例)初学者 Linux chrt 命令教程(5 个示例)初学者 Linux chrt 命令教程(5 个示例)初学者 Linux chrt 命令教程(5 个示例)
  • 文章
  • 正则表达式
    • 工具
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容
发表 admin at 2025年2月28日
类别
  • 未分类
标签

初学者 Linux chrt 命令教程(5 个示例)

在此页

  1. Linux chrt 命令
  2. Q1。如何使用 chrt 命令?
  3. Q2。如何让 chrt 显示最小/最大有效优先级?
  4. Q3。如何设置调度策略为SCHED_BATCH?
  5. Q4。如何设置调度策略为SCHED_FIFO?
  6. Q5。如何将调度策略设置为 SCHED_OTHER?
  7. 结论

进程构成了正在运行的 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 的更多信息,请访问其手册页。

©2015-2025 艾丽卡 support@alaica.com