GNU/Linux >> Linux の 問題 >  >> Linux

初心者向けのLinuxchrtコマンドチュートリアル(5つの例)

プロセスは、実行中のLinuxシステムのコアを形成します。プログラムがプロセスに変換されるとき(つまり、プログラムが実行されるとき)、多くの属性が設定されます。場合によっては、実行時にこれらの属性を変更したいことがあります。コマンドラインツールchrtがあります これが可能になります。

このチュートリアルでは、このユーティリティについて、わかりやすい例をいくつか挙げて説明します。ただし、その前に、この記事のすべての例がUbuntu18.04LTSマシンでテストされていることを言及する価値があります。

Linuxchrtコマンド

上記の紹介セクションですでに述べたように、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.

以下は、chrtコマンドがどのように機能するかについての良いアイデアを与えるはずのQ&Aスタイルの例です。

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

前のQ&Aで行ったように、 chrt -pを使用して変更を相互検証できます。 指図。 -fコマンドラインオプションを使用するには、root権限が必要になる場合があることに注意してください。

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の詳細については、manページにアクセスしてください。


Linux
  1. 初心者向けのLinuxcdコマンドチュートリアル(8例)

  2. 初心者向けのLinux日付コマンドチュートリアル(8例)

  3. 初心者向けのLinuxホスト名コマンドチュートリアル(5つの例)

  1. 初心者向けのLinux通信コマンドチュートリアル(5例)

  2. 初心者向けのLinuxdfコマンドチュートリアル(8例)

  3. 初心者向けのLinuxduコマンドチュートリアル(10例)

  1. 初心者向けのLinuxechoコマンドチュートリアル(5つの例)

  2. 初心者向けのLinuxenvコマンドチュートリアル(5つの例)

  3. 初心者向けのLinuxサイズのコマンドチュートリアル(6つの例)