26.3. 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-7 が割り当てられている場合、マルチスレッドアプリケーションに 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-6.12.0-55.9.1.el10_0.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