25.10. systemctl コマンドを使用してアプリケーションに制限を設定する
CPU アフィニティーの設定は、特定のプロセスにアクセスできる CPU を一部だけに制限する場合に役立ちます。実際には、CPU スケジューラーでは、プロセスのアフィニティーマスク上にない CPU で実行するプロセスはスケジューリングされません。
デフォルトの CPU アフィニティーマスクは、systemd が管理するすべてのサービスに適用されます。
特定の systemd サービスの CPU アフィニティーマスクを設定するために、systemd は CPUAffinity= を以下のものとして提供します。
- ユニットファイルオプション
-
/etc/systemd/system.confファイルの [Manager] セクションの設定オプション
CPUAffinity= ユニットファイルオプションでは、マージしてアフィニティーマスクとして使用する CPU または 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>