「cpulimit」がChromiumブラウザを制限しないのはなぜですか?

「cpulimit」がChromiumブラウザを制限しないのはなぜですか?

cpulimitCPU使用率が高いので、Chromium Webブラウザの速度を調整し、端末を使って実行したいと思います。

cpulimit -l 30 -- chromium --incognito

ただし、期待どおりにCPU使用率を制限しません(たとえば、最大制限は30%)。 100%再利用できます。なぜ?私は何が間違っていましたか?

ベストアンサー1

はい、Chromiumはスレッドの1つを停止してもあまり気にしません。

cpulimit2021年には本当に使いたいツールではありませんが、特に対話型ソフトウェアには適していません。シグナルでプロセスを停止して再開して、プロセスを「調整」します(またはあなたの場合は失敗します)。まあ。これは、オーディオやビデオの処理やスムーズなスクロールを試みる可能性が高いため、最新のブラウザでは実際に望ましくない不安定性を引き起こす恐ろしいハッキングです。

良いニュースは、実際には必要ないということです。 Linuxには、cgroupsすべてのプロセスまたはプロセスグループのリソース消費を制限するために使用できる機能があります(たとえば、Chromium、Skype、およびZoomを一緒に使用してCPU容量全体の50%以上を消費したくない場合)。また、ストレージアクセス速度やネットワーク転送などの他の事項を制限するためにも使用できます。

ブラウザの場合、これは次のように要約されます(テストされていません)。

# you might need to create the right mountpoints first
sudo mkdir /sys/fs/cgroup/cpu
sudo mount -t cgroup -o cpu cpu /sys/fs/cgroup/cpu

# Create a group that controls `cpu` allotment, called `/browser`
sudo cgcreate -g cpu:/browser
# Create a group that controls `cpu` allotment, called `/important`
sudo cgcreate -g cpu:/important

# allocate few shares to your `browser` group, and many shares of the CPU time to the `important` group.
sudo cgset -r cpu.shares=128 browser
sudo cgset -r cpu.shares=1024 important


cgexec -g cpu:browser chromium --incognitio
cgexec -g cpu:important make -j10 #or whatever

トリックは通常、対話型セッション(たとえばgnome-session)により高い共有を提供し、他のものにはより低い共有を提供することです。

この点に注意してください保証する共有はそうではありません。奪う、必要な場合は除外されます。つまり、その間にCPUが他のタスクを実行できない場合(他のタスクが実行されていないか、ハードドライブを待っているなど、より多くの共有を持つすべてのアイテムがブロックされている)、まだブラウザプロセスに割り当てられます。しかし、一般的にこれはあなたが望むものです。欠点はありません(残りのシステム実行を遅くすることはなく、ブラウザが何をすべきかをより速く「実行」するだけであり、利点としては省エネも可能です)。平均化:複数のCPUコアが終了すると、自動的にダウンクロック/一時停止することがあります。

おすすめ記事