Red Hat Training

A Red Hat training course is available for RHEL 8

4.3. tuna ツールを使用した CPU の調整

tuna ツールコマンドは、個別の CPU をターゲットとして指定できます。

tuna ツールを使用すると、以下が可能になります。

CPU の分離
指定した CPU で実行しているすべてのタスクが、次に利用可能な CPU に移動します。CPU の分離は、すべてのスレッドのアフィニティーマスクから削除することで利用できなくなります。
CPU の追加
指定された CPU でタスクを実行できるようにします。
CPU の復元
指定した CPU を以前の設定に戻します。

この手順では、tuna CLI を使用して CPU を調整する方法を説明します。

前提条件

手順

  • コマンドの影響を受ける CPU のリストを指定するには、次のコマンドを実行します。

    # tuna --cpus=cpu_list [command]

    cpu_list 引数は、コンマ区切りの CPU 番号のリストです。例: --cpus=0,2.CPU リストは、--cpus="1-3" の範囲でも指定でき、CPU 1、2、および 3 を選択します。

    現在の cpu_list に特定の CPU を追加するには、たとえば --cpus=+0 を使用します。

    [command] を、--isolate に置き換えます。

  • CPU を分離するには、以下を実行します。

    # tuna --cpus=cpu_list --isolate
  • CPU を指定するには、以下を実行します。

    # tuna --cpus=cpu_list --include
  • 4 つ以上のプロセッサーを持つシステムを使用するには、すべての ssh スレッドを CPU 0 および 1 で実行し、CPU 2 および 3 のすべての http スレッドを実行する方法を表示します。

    # tuna --cpus=0,1 --threads=ssh\* \
    --move --cpus=2,3 --threads=http\* --move

    このコマンドは、以下の操作を順次実行します。

    1. CPU 0 および 1 を選択します。
    2. ssh で開始するスレッドをすべて選択します。
    3. 選択したスレッドを選択した CPU に移動します。tuna は、ssh で始まるスレッドのアフィニティーマスクを適切な CPU に設定します。CPU は、数字で 0 および 1 で表すことができ、16 進マスクでは 0x3 で、またはバイナリーでは 11 として表現できます。
    4. CPU リストを 2 および 3 にリセットします。
    5. http で始まるすべてのスレッドを選択します。
    6. 選択したスレッドを指定された CPU に移動します。tuna は、http で始まるスレッドのアフィニティーマスクを指定された CPU に設定します。CPU は、16 進マスクで 0xC または 1100 のバイナリーで 2 および 3 で表すこともできます。

検証手順

  • 現在の設定を表示し、変更が想定どおりに実行されたことを確認します。

    # tuna --threads=gnome-sc\* --show_threads \
    --cpus=0 --move --show_threads --cpus=1 \
    --move --show_threads --cpus=+0 --move --show_threads
    
                           thread       ctxt_switches
         pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
       3861   OTHER     0      0,1     33997           58 gnome-screensav
                           thread       ctxt_switches
         pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
       3861   OTHER     0        0     33997           58 gnome-screensav
                           thread       ctxt_switches
         pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
       3861   OTHER     0        1     33997           58 gnome-screensav
                           thread       ctxt_switches
         pid SCHED_ rtpri affinity voluntary nonvoluntary             cmd
       3861   OTHER     0      0,1     33997           58 gnome-screensav

    このコマンドは、以下の操作を順次実行します。

    1. gnome-sc スレッドで始まるすべてのスレッドを選択します。
    2. 選択したスレッドを表示して、ユーザーがアフィニティーマスクと RT の優先度を検証できるようにします。
    3. CPU 0 を選択します。
    4. gnome-sc スレッドを指定の CPU 0 に移動します。
    5. 移動の結果を表示します。
    6. CPU リストを CPU 1 にリセットします。
    7. gnome-sc スレッドを指定した CPU (CPU 1) に移動します。
    8. 移動の結果を表示します。
    9. CPU リストに CPU 0 を追加します。
    10. gnome-sc スレッドを、指定した CPU、CPU 0、および 1 に移動します。
    11. 移動の結果を表示します。

関連情報

  • /proc/cpuinfo ファイル
  • tuna(8) の man ページ