プロセスの優先度を高に設定:危険ですか?


8

何かをリアルタイムに設定することは非常に難しいことだと私は読んだので、それをするつもりはありません。しかし、私が実行している他のアプリケーションにとっては非常に重要であるため、自分のシステムで常に最高の優先順位を確保する必要があるアプリケーションがあります。優先度をリアルタイムより1つ下のレベルに設定することに危険はありますか?

また、ショートカットターゲットを変更してこれを行うにはどうすればよいですか?コマンドとは?


「通常より上」(Windows 7)の設定の方が安全です。ここではいくつかの議論... stackoverflow.com/questions/1663993/...
モアブ

1
とても危険です。主な問題は優先順位の逆転であり、優先順位の高いプロセスは、優先順位の低いプロセスによって無期限にブロックされる可能性があるため、実際には優先順位が実質的に低くなります
David Schwartz

前述のように、「リアルタイム」は、プロセスが適切に動作し、必要な場合にのみ実行され、必要でない場合にスリープする限り、必ずしも悪いわけではありません。
モクバイ

2
@David Schwartz、Cutlerは、優先順位の逆転によるデッドロックを回避するようにWindowsスケジューラを設計しました。support.microsoft.com/kb/96418から、「Windows NTスケジューラは、実行の準備ができているスレッド(この場合は低優先度のロックホルダー)の優先度をランダムに上げることでこの問題を解決します。低優先度のスレッドは十分に長く実行されますロックを解除する(クリティカルセクションを終了する)と、高優先度のスレッドがロックを取り戻します。低優先度のスレッドが最初にロックを解放するのに十分なCPU時間を取得しない場合、別の機会が得られます次のスケジューリングラウンドで。」
Nicole Hamilton

@NicoleHamiltonでは、高負荷のために、最初のクリックで開かなかった場合(そして数回クリックした場合)、プログラムが一度にいくつかのインスタンスを開く場合があるのはそのためですか?
Simon Verbeke 2012

回答:


6

リアルタイムは必ずしも「ノーノー」ではありません。CPUサイクルから他のプロセスを枯渇させる可能性があります。一部のアプリケーションはそれを処理できません。それはあなたが実験しなければならないものです。

高は問題の少ないはずです。ただし、システムを監視して、すべてのアプリケーションが正常に動作しているかどうかを確認する必要があります。

コマンドラインでプロセスを変更する方法は次のとおりです。これをショートカットに追加できます。

http://support.microsoft.com/kb/191771


1
Windowsでは、それはありません(タスクマネージャ自体を含む)非常に簡単に他のプロセスを飢えさせます。
user1686 2012

3
それはすべてあなたのシステムに依存します。プロセスのCPU集中度に応じて、リアルタイムアフィニティは適切です。Imは現在、問題なくリアルタイムでプロセスを実行しています。また、優先順位をリアルタイムに設定しながら、1つのプロセッサにアフィニティを設定すると役立ちます。
Keltari、2012

プロセスがリアルタイムに設定されている場合、そのプロセスが実行されているコア上の他のすべてのプロセスよりも絶対的に優先されますか?私は自分のコアの1つを実行中にドワーフフォートレスに捧げる方法を模索しています。
SaintWacko 2012

3

場合によります。コンピューターにコア/ CPUが1つしかなく、それがCPU集中型のタスクである場合、それをリアルタイムに設定しません。高でも大丈夫かもしれませんが、実験する必要があります。

複数のコアがあり、プロセスがシングルスレッドの場合:先に進んで、好きなように設定してください。1つのコアが常に100%の負荷である場合でも、他のコアは無料です。

複数のコアがあり、プロセスがマルチスレッドである場合:すべてのスレッドの負荷が100%かどうかによって異なります。一部のプログラムには、他のスレッドに作業をディスパッチする「マネージャー」スレッドがありますが、それ自体は多くの処理を行いません。これにより、1つのコアがほとんど解放され、高い優先度またはリアルタイムの優先度が可能になります。

他のプログラムはすべてのコアを取り入れようとします。この場合、高でも問題ないかもしれませんが、実験する必要があります。

他のものでも、特定の数のコアのみを使用し、利用可能なすべてのコアを使用しない場合があります。この場合、高い優先度またはリアルタイムの優先度で問題ありません。

シングルコアでない限り、先に進んで実験してください。ほとんどの場合、リアルタイムに設定しても問題はありません。プロセスのアフィニティ(プロセスが使用できるコアの数)もタスクマネージャで設定できます。このようにして、CPUの負荷をより適切に分散できます。また、温度や電力消費などを抑えるのにも役立ちます。


+1良い点は、シングルスレッドアプリはマルチコアマシンでは問題なく、どのようにコンピューティングバインドされているかです。
ニコールハミルトン

ただし、警告されているように、[主に]シングルスレッドの優先度の高いプロセスは、単一のコアにのみ影響する場合でも、グローバルなシステム同期ロックを異常な時間保持する可能性があることを忘れないでください。
ダイアスタ

1

これが機能するかどうかは、アプリケーションの機能に完全に依存します。I / Oを待つ必要のない長くて長い計算を実行している場合は、高い優先度で実行すると、マシンが限界に達する可能性があります。しかし、問題がレイテンシであり、アプリケーションがI / O完了または同様のイベントに応答して非常に高速でウェイクアップする必要がある場合は、少し簡単な処理を行ってから、再びスリープ状態に戻れば問題ありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.