
ファイルを圧縮するためにbzip2を使用していますが、プロセスはCPUの100%以上を占めています。最小CPU比でbzip2を実行する方法はありますか?
答え1
このプロセスはシステムの他のプロセスを妨げますか? bzip2で使用されるCPUを制限するのはなぜですか?
nice
次のコマンドを使用してプロセスの優先順位を変更できます。
$ nice -n 19 bzip2 <file>
また、bzip2
圧縮レベルを下げることもできます。
$ bzip2 -1 <file>
答え2
推奨事項:優先順位の使用
@EEAAの回答に加えて、他のプロセスの影響を最小限に抑えるために、bzipプロセスに最低の優先順位を与えるには、さらにionice
。これはIOスケジューラ(カーネルのデフォルトですが、インストールに応じて調整できます)を使用する場合にのみ便利ですionice
。あるいは、IOスケジューラを使用しても影響はありません。CFQ
ionice
deadline
noop
使用しているIOスケジューラを確認するには:
cat /sys/block/<DEVICE>/queue/scheduler
<DEVICE>
ハードドライブデバイスはどこにありますか?sda
今はionice
最低IO優先順位のクラス3を設定しようとしています。これを一緒に組み合わせることができますnice
:
$ nice -n 19 ionice -c3 bzip2 <file>
TomとEEAAが説明するように、それだけで十分です。カーネルは、他のプロセスがCPUやIOを必要としない場合、bzipができるだけ早く実行されることを保証します。ただし、必要に応じて他のプロセスに優先順位を付けます。これは推奨される選択です。
代替案: cpulimit - CPU 使用量の制限
bzipで「CPU制限」を引き続き使用できるようになりました。私の選択ではありませんが、試してみたい、またはもっと気に入ったら使用してくださいcpulimit
。ただし、通常、Linuxではデフォルトでパッケージ化またはインストールされません。だからインストールする必要があります。ニッククラフト良い文書がありますcpulimit
インストールと使用方法
公式ウェブサイトは次のとおりです。http://cpulimit.sourceforge.net/