20.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 権限がある。
手順
-
root ユーザーとして、テキストエディターで
/etc/tuned/realtime-variables.conf
を開きます。 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 に割り当てられなくなります。
tuned-adm
ユーティリティーを使用して、リアルタイムのTuneD
プロファイルを有効にします。# tuned-adm profile realtime
- マシンを再起動して変更を有効にします。
検証
カーネルコマンドラインで
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