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 アフィニティーマスクを設定するには以下を実行します。
選択したサービスで
CPUAffinity
ユニットファイルオプションの値を確認します。$ systemctl show --property <CPU affinity configuration option> <service name>
root として、アフィニティーマスクとして使用する CPU 範囲の
CPUAffinity
ユニットファイルで必要な値を設定します。# systemctl set-property <service name> CPUAffinity=<value>
サービスを再起動して変更を適用します。
# systemctl restart <service name>
manager configuration オプションを使用して特定の systemd サービスの CPU アフィニティーマスクを設定するには、以下を実行します。
/etc/systemd/system.conf
ファイルを編集します。# vi /etc/systemd/system.conf
-
CPUAffinity=
オプションを検索して、CPU 数を設定します。 - 編集したファイルを保存し、サーバーを再起動して変更を適用します。