23.2. TuneD の isolated_cores オプションを使用した CPU の分離

CPU を分離する最初のメカニズムは、カーネルブートコマンドラインでブートパラメーターの isolcpus=cpulist を指定することです。RHEL for Real Time での推奨の方法は、TuneD デーモンとその tuned-profiles-realtime を使用することです。

注記

tuned-profiles-realtime バージョン 2.19 以降では、組み込み関数 calc_isolated_cores が初期 CPU セットアップを自動的に適用します。/etc/tuned/realtime-variables.conf 設定ファイルには、デフォルトの変数コンテンツが isolated_cores=${f:calc_isolated_cores:2} として含まれています。

デフォルトでは、calc_isolated_cores はソケットごとに 1 つのコアをハウスキーピング用に予約し、残りを分離します。デフォルト設定を変更する必要がある場合は、/etc/tuned/realtime-variables.conf 設定ファイルの isolated_cores=${f:calc_isolated_cores:2} 行をコメントアウトし、TuneD の isolated_cores オプションを使用して CPU を分離する手順に従います。

前提条件

  • TuneD パッケージおよび tuned-profiles-realtime パッケージがインストールされている。
  • システムの root 権限がある。

手順

  1. root ユーザーとして、テキストエディターで /etc/tuned/realtime-variables.conf を開きます。
  2. isolated_cores=cpulist を設定して、分離する CPU を指定します。CPU 番号および範囲を使用できます。

    例 :

    isolated_cores=0-3,5,7

    コア 0、1、2、3、5、および 7 を分離します。

    8 コアの 2 ソケットシステム (NUMA ノード 0 にはコア 0-3 があり、NUMA ノード 1 にはコア 4-8 がある) で、マルチスレッドアプリケーションに 2 つのコアを割り当てるには、以下を指定します。

    isolated_cores=4,5

    これにより、ユーザー空間のスレッドが CPU 4 および 5 に割り当てられなくなります。

    無関係なアプリケーション用に、異なる NUMA ノードから CPU を選択するには、以下のコマンドを実行します。

    isolated_cores=0,4

    これにより、ユーザー空間のスレッドが CPU 0 および 4 に割り当てられなくなります。

  3. tuned-adm ユーティリティーを使用して、リアルタイムの TuneD プロファイルを有効にします。

    # tuned-adm profile realtime
  4. マシンを再起動して変更を有効にします。

検証

  • カーネルコマンドラインで isolcpus パラメーターを検索します。

    $ cat /proc/cmdline | grep isolcpus
    BOOT_IMAGE=/vmlinuz-4.18.0-305.rt7.72.el8.x86_64 root=/dev/mapper/rhel_foo-root ro crashkernel=auto rd.lvm.lv=rhel_foo/root rd.lvm.lv=rhel_foo/swap console=ttyS0,115200n81 isolcpus=0,4