システム・リソースへのアクセスの制御
systemctlコマンドを使用して、次のようにシステム・リソースへのcgroupのアクセスを制御します。
sudo systemctl [--runtime] set-property httpd CPUShares=512 MemoryLimit=1GCPUShareはCPUリソースへのアクセスを制御します。 デフォルト値は1024であり、値を512にすると、cgroupのプロセスのCPU時間へのアクセスが半分になります。 同様に、MemoryLimitはcgroupで使用可能なメモリーの最大量を制御します。
ノート:
.service拡張子をサービス名に指定する必要はありません。
--runtimeオプションを指定すると、システムを再起動したときに設定が維持されません。
かわりに、サービスのリソース設定は、/usr/lib/systemd/systemのサービスの構成ファイルにある[Service]の見出しで変更できます。 ファイルを編集すると、systemdがその構成ファイルをリロードし、サービスを再開します。
sudo systemctl daemon-reload
sudo systemctl restart serviceスコープ内で共通のコマンドを実行し、systemctlを使用して、これらの一時cgroupsのシステム・リソースへのアクセスを制御できます。 スコープ内でコマンドを実行するには、systemd-runコマンドを使用します。
sudo systemd-run --scope --unit=group_name [--slice=slice_name] デフォルトのsystemスライスでグループを作成しない場合は、別のスライスまたは新しいスライスの名前を指定できます。 次の例では、myslice.sliceのmymon.scopeでmymonitorというコマンドを実行します。
sudo systemd-run --scope --unit=mymon --slice=myslice mymonitorRunning as unit mymon.scope.ノート:
--scopeオプションを指定しない場合は、制御グループがスコープではなく、サービスとして作成されます。
次に、systemctlを使用して、サービスと同じように、スコープのシステム・リソースへのアクセスを制御します。 ただし、サービスとは異なり、次のように.scope拡張子を指定する必要があります。
sudo systemctl --runtime set-property mymon.scope CPUShares=256 詳細は、「制御グループについて」、およびsystemctl(1)、systemd-cgls(1)、systemd.resource-control(5)の各マニュアル・ページを参照してください。