22.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>
関連情報
-
systemd.resource-control(5)
、systemd.exec(5)
、cgroups(7)
man ページ