「nice」が有効かどうかを確認するには?

「nice」が有効かどうかを確認するには?

リソースを共有するシステムで実行されるさまざまなタスクを見ると、良い値が無視されるように見えます。 Niceを19に設定したジョブの多くは100%CPU負荷で実行され、Niceを0に設定した他の多くのジョブは10%低いCPU負荷で実行されます。
これらすべてのプロセスは非常に要求が厳しく、アイドルシステムで実行されると、割り当てられたすべてのCPUが最大化されます(例:南部ドイツ)。

私は読んだここそれ

「...[良い]値は調整可能ですが、Linux実装のカーネルスケジューラでは無視できます。」

これは本当ですか?カーネルがnice値を無視することは可能ですか?このようなことが起きているようですが、どうやって確かに分かりますか?私はこれがわからない状態でシステム管理者に問題になることを望んでいません。関連スレッドの議論を読んだ。仕事はどうですか?そしてniceLinuxにはあまり役に立ちません。ただし、CPU負荷が使用されていない状況については説明しません。

ジョブがリソースを獲得した場合、優先順位の高いジョブに再割り当てする前に、一定期間にわたってそのリソースを保持できますか?優先順位の低いジョブは数日間実行されていましたが、優先順位の高いジョブは実行に10分もかからない短いがトリッキーな計算を繰り返し実行しました。短いジョブの間に、システムが優先順位の低いジョブにリソースを割り当て、優先順位の低いジョブがそのリソースをスケジュールすることは可能ですか?

私が経験しているシステムスタックIQCentOS 6.5パッケージのインストール(一部の詳細では簡単に誤解する可能性があります)。

ベストアンサー1

Nice値は、プロセスによって生成された実際のCPU負荷については何も伝えません。

良い点は、あなたが思うものとまったく同じです。つまり、特定のワークロードでプロセスがどのように機能するかです。

より正確に:

  • nice値が高い(==低いスケジューリング確率)プロセスが予約されている場合、nice値が低いか優先順位の高いプロセスがCPUを要求するまでCPUを予約し、潜在的に100%の負荷を生成します。

  • 低いnice値(==より高いスケジューリング確率)を持つプロセスがCPUを放棄すると、ピーク時にCPUを使用しない可能性があります。

これが、高レベルのプロセスよりも少ないCPUを使用する低レベルのプロセスを見る理由です。より良いプロセスはより簡単にあきらめますが、現時点では明らかにすべきことがたくさんあります。

おすすめ記事