1

シェル スクリプトがあります。このスクリプトは、バックグラウンドで実行される別のスクリプトを呼び出します。ただし、バックグラウンドで実行されているこのスクリプトは、CPU 使用率を増加させます。私の仕事は、CPU 使用率を下げることです。助けてください。シェルスクリプトを介してプロセスをフォークするにはどうすればよいですか?? Nohup、およびコマンドを試しました

例: -

Parent_script.sh は child_script.sh を実行します & (バックグラウンドで) この child_script.sh は CPU 使用率を増加させます

注: -child_script.sh は強制的にバックグラウンドで実行する必要があり、それに代わるものはありません。

4

2 に答える 2

2

niceプロセスの優先度を下げるコマンドを見てください。

たとえば、実行できる優先度が最も低いスクリプトを実行するには、次のようにします。

nice -n 9 child_script.sh &

これは、CPU が提供できるより多くのリソースを要求する複数のプロセスがマシンにある場合にのみ機能することに注意してください。一方、マシンがアイドル状態の場合、最も優先度の低いプロセスでも最大 99% の CPU を使用できます。

マシンで使用可能な CPU がある場合でも、プロセスの CPU 使用率を制限したい場合は、cpulimitプログラムを見てください。

于 2013-02-22T09:43:40.123 に答える
0

リソースを制限するもう 1 つの方法は、WLM (Work Load Manager) を使用することです。すべてのプロセスを異なるクラスに割り当てることができます。すべてのクラスが優先順位を取得し、プロセッサ パワーを共有します。特定のクラスの処理能力を動的に増減できます。デフォルトのクラスには、AIX で使用されるプロセスが含まれています。

スクリプトの内容 (スクリプト内で実行するコマンドの種類) に基づいて child_script.sh の処理能力を下げることができるようにするには、その内容を確認する必要があります。

于 2013-02-26T13:01:47.697 に答える