CPUSharesプロパティを使用するときにこのシステムサービスリソースが制限されないのはなぜですか?

CPUSharesプロパティを使用するときにこのシステムサービスリソースが制限されないのはなぜですか?

cgroupsとsystemdを使って手を汚すことができるように私が考える最も愚かなCプログラム(ただのタイマーとspinlock whileループ)を作成し、名前を付けて、次のファイルをidiot添付idiot.serviceしました/sys/fs/systemd/system/

[Unit]
Description=Idiot - pretty idiotic imo

[Service]
Type=simple
ExecStart=/path/to/idiot
User=bruno
CPUShares=100

[Install]
WantedBy=default.target

その後、これを行いましたが、sudo systemctl start idiot.service; top | grep idiot予想通りidiotCPU使用率は100%でした。今によると協会、次のサービスリソースを制限できる必要があります。

sudo systemctl set-property idiot.service CPUShares=100
sudo systemctl daemon-reload
sudo systemctl restart idiot.service

こうやったんだけどtop…でもidiotCPU使用率が100%だと思います!私は何が間違っていましたか?

CPUShares=100注:ユニットファイルに追加しようとしましたが、役に立ちませんでした。

ベストアンサー1

man systemd.resource.controlによると、CPUShares=weight次のように動作します。

使用可能なCPU時間は、CPU時間共有の重みに基づいてスライス内のすべてのデバイスに分配されます。

同じスライスの他のメンバーについて何も知らせていないので、他のメンバーがないので、サービスがすべてのCPUを使用することが適切であると仮定します。

CPU制御でプレイしたい場合はお試しくださいCPUQuota=20%。コマンドは次のように記録されます。

CPUQuota = 20%は、実行中のプロセスがCPUのCPU時間の20%を超えないようにします。

おすすめ記事