22.10. systemctl コマンドを使用してアプリケーションに制限を設定する

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

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

特定の systemd サービスの CPU アフィニティーマスクを設定するために、systemdCPUAffinity= を以下のものとして提供します。

  • ユニットファイルオプション
  • /etc/systemd/system.conf ファイルの [Manager] セクションの設定オプション

CPUAffinity= ユニットファイルオプションでは、マージしてアフィニティーマスクとして使用する CPU または 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>

関連情報

  • systemd.resource-control(5)systemd.exec(5)cgroups(7) man ページ