web-dev-qa-db-ja.com

Linuxプロセスを非常に低い優先度で実行しますか?

私はそれほど重要ではないが、CPU能力を非常に消費する通常のプロセスを持っています。そして、私は本当に重要な別のプロセスを持っていますが、ほとんどの時間はアイドル状態ですが、仕事を得たときには本当に高い計算能力が必要です

Nice -20 ./low_priority_processNice --20 ./high_priority_processを使用して実行してみましたが、優先度の高いプロセスが必要な場合、優先度の低いプロセスが大量のCPUを消費します。 CPUパワーを使用するプロセス

12
uray

cgroups を見てください。CPUの予約(およびその他)-必要なものが正確に提供されるはずです。 cgroupsを使用するアプリケーションの制御優先度 を読むことをお勧めします。

とはいえ、CPUの95%が割り当てられている重要で頻繁にアイドル状態のプロセスを、5%が割り当てられている別のアプリケーションにグループ化します。電力を必要とするプロセスは、それらの時間にせいぜい5%しか得られません。計算の急増がなくなると、すべてのCPUパフォーマンスが残りのプロセスでスローされます。利点として、sshdのようなプロセス用の特別なcgroup(パフォーマンス要件が最小)を作成すると、何でもできるすべてのCPUを取得しようとしていてもログインできるようになります。 sshd用に予約してください。

10
peterph

プロセスの優先順位(Nice値)が低い場合、優先順位の高いプロセスを中断することはありません。優先度の高いプロセスが実行されているときに、優先度の低いプロセスが依然として大量のCPUを消費しているのは、優先度の高いプロセスがそうではないためですそれ 忙しい。おそらくIOを待っています。 chrt -p -i 0 $PIDを使用して、Nice 19 -p $PIDよりも低い優先度でプロセスを実行します(ここではLinuxについて話していると想定しています)。

chrt -p -i 0 $PIDは、プロセスを「真の」アイドルスケジューラにします。

http://linux.die.net/man/1/chrt

7
Ken Sharp

この例を試して、プロセスを低プロセスとして実行します。

あなたが仕事ならニースtar xvf asets.Zip

使用する

Nice tar xvfアセット.zip

その後、発行

解凍プロセスを監視するトップ

ps aux | grep "tar"

cpulimitで特定のことを試してください

wget -O cpulimit.Zip https://github.com/opsengine/cpulimit/archive/master.Zip
unzip cpulimit.Zip
cd cpulimit-master
make
Sudo cp src/cpulimit /usr/bin

cpulimit -l 50 python 0 9999999999>/dev/null&

0
unixmiah