実際にプロセスの優先順位を決めるか、Linuxにプロセスの優先順位を尊重させる方法はありますか?

実際にプロセスの優先順位を決めるか、Linuxにプロセスの優先順位を尊重させる方法はありますか?

他のオペレーティングシステムと同様に、-20(最も優先順位)から19(あまり優先順位)までのプロセス優先順位があることを知っていますが、Linuxはこれを無視しているようです。

今はバックグラウンドでカーネルを構築しています(makeプロセスの優先順位は0ですが)。時間がかなりかかるので、何かを見てみることにしました。そのため、VLC(Core2 2.6GHz CPU時間の約30%)でかなりトリッキーなH264ビデオを開きました。 。

そのため、VLCの使用優先順位を変更することにしrenice、特にPulseAudioを見て-11同等の位置に置くことにしましたsudo renice -11 -p VLC_PROC_#

同じことが起こり続け、-20に設定しましたが、まだ視覚的なアーティファクトが見え続けました。

もしそうなら、Linuxが実際にいくつかの0プロセスよりも-20プロセスの優先順位を指定し、必要なものをすべて提供しないのはなぜですか? Linuxでプロセスの優先順位を実際に指定する方法はありますか?

万が一に備え、ここではXFCEをデスクトップ環境として使用して64ビットArchを実行しています。

編集する:ソースコードが/tmpあり、すべてがすでにRAMにある間、カーネルのコンパイルが行われました。tmpfsRAM使用量が60%にも達せず、ページングも発生しません。

上記のシナリオは1つだけです。テストケース私は、Linuxがなぜこのように動作するのか、そして真の優先順位を得る方法があるのか​​に興味があります。

ベストアンサー1

reniceこれはプロセスの優先順位に影響します。しかし、経験したように、プロセスの優先順位が高いからといって、必要なすべてのリソースがあるわけではありません。優先順位が高いほど、プロセスがリソースを獲得する可能性が高くなります。

reniceCPU 時間にのみ影響します。したがって、2つ以上のプロセスがCPU時間を置いて競合する場合にのみ影響します。制限要素がCPU時間ではなくI / O帯域幅の場合、nice値は何の影響もありません。おそらくあなたの場合、コンパイルは多くのディスク帯域幅を使用し、vlcはディスクからデータを十分に高速に読み取ることができません。努力するionice交換または補完してくださいnice

これを頻繁に行うと、ビデオと編集内容が異なるディスクにある場合、より良い結果が得られます。また、ビデオをディスクキャッシュにプリロードしたり、cat /path/to/video.file >/dev/nullオフセット456 MBから始めて123 MBを読み取ったりすると、tail -c +456m | head -c 123m /path/to/video.file >/dev/nullより良い結果が得られます。ただし、RAMが多いと、コンパイル時にキャッシュスペースが回復する可能性があります。メモリにビデオがあるかどうかを確認するには、仮想ディスクを作成してビデオをここにコピーします。

おすすめ記事