Red Hat Training

A Red Hat training course is available for RHEL 8

第27章 systemd を使用した CPU のアフィニティーおよび NUMA ポリシーの設定

CPU 管理、メモリー管理、および I/O 帯域幅オプションで、利用可能なリソースを分割します。

27.1. systemd を使用した CPU アフィニティーの設定

CPU アフィニティーの設定は、特定のプロセスにアクセスできる CPU を一部だけに制限する場合に役立ちます。実際には、CPU スケジューラーでは、プロセスのアフィニティーマスク上にない CPU で実行するプロセスはスケジューリングされません。

デフォルトの CPU アフィニティーマスクは、systemd が管理するすべてのサービスに適用されます。

特定の systemd サービスの CPU アフィニティーマスクを設定するには、systemd の /etc/systemd/system.conf でユニットファイルオプションとマネージャー設定オプション両方として CPUAffinity= を指定します。

CPUAffinity= ユニットファイルのオプション では、CPU または CPU 範囲のリストを設定し、アフィニティーマスクとしてマージして使用されます。/etc/systemd/system.conf ファイルの CPUAffinity オプション は、プロセス ID 番号 (PID) 1 と、PID1 でフォークされた全プロセスにアフィニティーマスクを定義します。これにより、各サービスで CPUAffinity を上書きできます。

注記

特定の systemd サービスの CPU アフィニティーマスクを設定したら、システムを再起動して変更を適用する必要があります。

手順

CPUAffinity ユニットファイル オプションを使用して特定の systemd サービスの CPU アフィニティーマスクを設定するには以下を実行します。

  1. 選択したサービスで CPUAffinity ユニットファイルオプションの値を確認します。

    $ systemctl show --property <CPU affinity configuration option> <service name>
  2. root として、アフィニティーマスクとして使用する CPU 範囲の CPUAffinity ユニットファイルで必要な値を設定します。

    # systemctl set-property <service name> CPUAffinity=<value>
  3. サービスを再起動して変更を適用します。

    # systemctl restart <service name>

manager configuration オプションを使用して特定の systemd サービスの CPU アフィニティーマスクを設定するには、以下を実行します。

  1. /etc/systemd/system.conf ファイルを編集します。

    # vi /etc/systemd/system.conf
  2. CPUAffinity= オプションを検索して、CPU 数を設定します。
  3. 編集したファイルを保存し、サーバーを再起動して変更を適用します。