誰かが待ち時間の短いコアを使用しないことを選択するのはなぜですか?

誰かが待ち時間の短いコアを使用しないことを選択するのはなぜですか?

rtLinuxlowlatencyカーネルに関する良い情報が見つかりません。

誰かがなぜそうなのか気になります。いいえ待ち時間の短いコアを使いたいです。

また、誰かが具体的な違いが何であるかを知ることができれば良いでしょう。

ベストアンサー1

「Universal」、「Low Latency」(Ubuntuの場合)、RT(「Real Time」)など、さまざまな構成はスループットとレイテンシのバランスをとるように設計されています。汎用コアは待ち時間よりもスループットを重視し、他のコアはスループットよりも待ち時間を重視します。したがって、低レイテンシよりも多くのスループットを必要とするユーザーは、低レイテンシコアを選択しません。

低レイテンシコアは、通常の設定と比較して次の設定を変更します。

  • デフォルトでは、IRQはスレッド化され、より多くのIRQを意味します。みんなIRQ)をプリエンプションでき、優先順位を指定し、CPUアフィニティを制御することもできます。
  • プリエンプションはカーネル全体で有効になります(CONFIG_PREEMPT変えるCONFIG_PREEMPT_VOLUNTARY);
  • これデバッグ遅延ユーザーが進行をブロックするカーネル操作を確認できるようにツールを有効にします。
  • タイマー周波数は次のように設定されます。1000Hz変える250Hz

RTコアを追加いくつかのパッチメインラインカーネルといくつかの設定が変更されました。ほとんどのパッチの目的は、ロックを削除または分割して、より多くのプリエンプションの機会を可能にし、カーネルが中断しない操作を処理するのにかかる時間を短縮することです(特にロギングメカニズムを改善し、使用を減らすことによって)。これらすべての目的はカーネルを作ることです。時間通りに作業を完了してください。つまり何かを処理する必要があるときに他のことをして忙しくないことを確認してください。これは、スループットが高い場合やレイテンシが短い場合とは異なりますが、レイテンシの問題を解決するのに役立ちます。

ほとんどのディストリビューションでは、デフォルトで設定された汎用カーネルは「合理的な」トレードオフとして設計されています。単一のジョブが長い間システムを排他的にするのを防ぎ、ジョブがスループットに影響を与えることなく合理的に頻繁に移行できるようにします。カーネルがタスクを切り替えるか(カーネルの内側または外側)、または割り込みを処理するかを心配するのに多くの時間を費やすほど、システム全体が「動作」するのにかかる時間が短くなります。これらのトレードオフは、リアルタイムのオーディオやビデオの処理など、遅延時間に敏感なワークロードには不十分です。このようなワークロードの場合、遅延時間の短いコアは、一部のスループットを犠牲にしてより低い遅延時間を提供します。リアルタイム要件を満たすために、リアルタイムカーネルはスループットを上げるのではなく、待ち時間の短いブレーカをできるだけ排除します。

Linuxの主流ディストリビューションは、ほとんどの場合サーバーにインストールされます。ここで、遅延時間は伝統的にそれほど重要ではないと考えられています(パーセンタイルパフォーマンス分析を実行し、最高パーセンタイルパフォーマンスに興味がある場合は同意しない可能性があります)。したがって、デフォルトのカーネルはかなり保守的です。デスクトップユーザーは、カーネル独自のドキュメントで推奨されているように、待ち時間の短いカーネルを使用する必要があります。実際には、待ち時間の短いコアをより多く使用するほど、関連性についてより多くのフィードバックが発生し、これは基本コア構成に一般的に適用可能な改善につながる可能性がある。これはRTコアでも同様です(多くのRTパッチが主流のカーネルを対象としています)。 。

今回のスピーチのテーマはかなり多くの背景が提供されます。

Linuxカーネルバージョン5.12以降「ダイナミックプリエンプション」有効にできます。これにより、カーネルコマンドラインで次のコマンドを使用してデフォルトプリエンプションモデルをオーバーライドできます。preempt=範囲。現在none、(サーバー)、voluntary(デスクトップ)、full(低レイテンシデスクトップ)がサポートされています.

おすすめ記事