ビデオエンコーディングベンチマークに「sudo chrt -r 99」コマンドを使用すると、常により大きな(悪い)時間が発生します。

ビデオエンコーディングベンチマークに「sudo chrt -r 99」コマンドを使用すると、常により大きな(悪い)時間が発生します。

私はビデオエンコーディングベンチマークアプリケーションを開発しています。私にとって奇妙なことは、このコマンドを使用するときはsudo chrt -r 99 VideoEncoding cfg常にVideoEncoding cfg。人々はプロセスのリアルタイム属性を変更する方が速いと思ったが、実際には遅いことがわかった。

誰かがこれを説明できますか?

PS:私はUbuntu 20.04 LTSでベンチマークを実行しています。

ベストアンサー1

プロセスのリアルタイム属性を変更する方が速いと仮定

これは完全に間違っています
リアルタイムポリシーに基づいてすべてのスケジュールをスケジュールすることは、正確で決定的な待ち時間、タスク間の同期を達成するのに役立ちます。しかし、無料のランチはないのでスループットを犠牲にして

CPU集中的なタスク(ビデオエンコーディングタスクとは何ですか)の特定の場合に必要なものは次のとおりです。スループット

したがって、SCHED_RRを使用してこれらのタスクをスケジュールすると、システム内のすべてのもの(ベンチマークアプリケーションを含む)のパフォーマンスのみが低下します。
そして、CPU集約的なタスクがマルチスレッドであるほど(最新のCPU集約的なタスクである可能性が高い)、パフォーマンスが低下します。

再最適化はより良いパフォーマンスを達成するのに十分でなければならず、極端な場合は可能な限り最高のパフォーマンスが必要な場合はいくつかのアイドルCPUでタスクをスケジュールします。

ただし、可能な限り高い優先順位でRTを予約しないでください。問題が発生した場合、ハードウェアのリセット以外は何もできません。

BTW 2は言うまでもなく、同じシステムで実行されているベンチマークアプリケーションでRTシステムをベンチマークすることは言うまでもありません。

おすすめ記事