「nice」コマンドが有効かどうかはどうすればわかりますか?

「nice」コマンドが有効かどうかはどうすればわかりますか?

約100%CPUで実行されるプロセスがあります。だから私はそれをniceとして実行します。

$ nice /dir/myamd.sh

このtopコマンドは、私のプロセスがまだ100%に近いレベル(99%のように少し低いかもしれません)で実行されていることを示しています。このniceコマンドは実際に動作しますか?

返信ありがとうございます!niceと両方を使用できますかcpulimit?なぜなら、私のプロセスの歩留まりが他のプロセスよりも高くなり、80%のCPUを例に挙げているからです。

答え1

Niceはプロセスの相対的な優先順位を変更します。 CPUを必要とする他のものがない場合は、優先順位が高いものがないため、CPUを100%使用できます。

多くの最新システムにはマルチコアがあるため、4つのコアがありますが、3つのプロセスしか実行できない場合は、プロセスが良好なレベルに関係なくコアを100%使用できる別の例です。

答え2

topps laxシステム内のすべてのプロセスの現在の良好なレベルがこの列に表示されますNI

良いレベルとCPU負荷のたとえ

CPUをスーパーマーケットのカウンターパートの計算員と考えてください。マルチコアCPUがある場合は複数あります。

各カウンターごとに支払いを待っている顧客の行が並んでいます。これはCPUの実行キューです。

キューの長さは現在のCPU負荷です。それが今カウンターの後ろにいる人の負担だ。

キュー内の人は次のようになります。いいね後ろの人が本当に急いでいる必要がある場合は、キューからそれらを通過してもまったく問題ありません。

カウンター計算員それだけしなければならないことが多いそれでも同じ速度で動作(キューが空くまで100%)ただし、キューにいる人は、キューの他の人とどれほどフレンドリーなかに応じて、順番にカウンターに到着します。

たとえば、スーパーマーケットは空になっている可能性がありますが、計算が必要な大きなカートを持っている顧客がいます。そのはいとても良かったのですが…気にしませんでしたが、計算員は話をする時間があるほど遅くなりませんでした。

Unix システムでは、Supermarket とは異なり、CPU がプロセスをキューに戻す前に、しばらくの間プロセスを処理します。これにより、あるプロセスは別のプロセスをブロックしません。

この例えにコンテキスト切り替えを適用することもできます。これはCPUがあるプロセス処理から別のプロセス処理に切り替えるポイントであり、頻繁に実行すると時間がかかることがあります。これは基本的にカウンターから顧客にサービスを提供するのにかかる時間です。加工食品をバッグなどに入れるのにかかる時間や、次のお客様がこれから「こんにちは」と挨拶するのにかかる時間などです。

注:上記では「CPU」を使用しました。場合によっては、「コア」と言わなければなりません。ユーザー体験の観点からは違いはありません。

答え3

コマンドはnice期待どおりに機能しますが、期待どおりに機能しません。

実際にCPU使用量を制限し、使用可能なCPUリソースを無駄にしたい場合は、次のものを使用できます。

cpulimit -l 25 /dir/myamd.sh

CPU制限Myadm.sh CPU使用量はSIGSTOP / SIGCONTを使用して監視および調整され、平均使用量を(1つのvCPU)制限の25%未満に保ちます。マルチコア/スレッドシステムでは、使用量を100%以上に制限できます。

より効率的な代替手段は、次のものを使用することです。cgroup、例えば参照このブログもっと学ぶ。

答え4

あなたの例では次のようになります。いいえ布材。

誰ですかいいえバックグラウンド(&)でプログラムを実行します。したがって、これはおそらくこのTTYで実行される唯一のプログラムです(これを開始したシェルを除く)。

2番目のプログラムが別のTTY(別のターミナルウィンドウ)で実行されている場合、両方のプログラムの相対的な良好なレベルは顕著な影響を与えません。

https://unix.stackexchange.com/a/277633/29483

関連情報