rt
Linuxlowlatency
カーネルに関する良い情報が見つかりません。
誰かがなぜそうなのか気になります。いいえ待ち時間の短いコアを使いたいです。
また、誰かが具体的な違いが何であるかを知ることができれば良いでしょう。
答え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
(低レイテンシデスクトップ)がサポートされています.
答え2
Stephen Kittは、構成とバランス、そしてすべての優れた技術パラメータを説明しています。私はわずかな視覚的な違いを提供したいと思います。
あなたはジープに乗って地形を横切るサファリ旅行をしています。あなたの獲物が逃げています。引き金を引くと、餌が十字線にあるときにライフルが発射されます。計算は簡単です。十字線の供給=ヒット、十字線のない供給=逃す - 緊急に必要です低レイテンシ- それから回復し、ライフルを再装填し、他の獲物を狩ります。追加の速度や規則性は必要ありません。隠れるそれはすべてです。
Safariでこのビデオを変換しています。長くて数時間かかります。特定のフレームが処理される時期と、一部のフレームが他のフレームよりも処理に時間がかかるかどうかは重要ではありません。できるだけ早くプロセスを完了する必要があります。スループット時間が短くなり、他のものは重要ではありません
あなたが受け取ったのは短くて長くてスペースが広い電報でした。モールスの全身は解読しやすく、各パルスがいつ始まり終わるかを正確に知る必要はありませんでしたが、保証する、あなたがしたお見逃しなく次のいずれか - 必要なものリアルタイム(遅いかもしれませんが、全身はそんなに速くはありませんが、規則的でなければならない
これら3つの例のうち、明らかに1つだけを選択しました。隠れる、スループットまたは定格、他の2つを犠牲にして - 明らかな理由で。 3 つすべてを持つことができない場合は、そのうちの 1 つにのみ低遅延が必要です。
答え3
素人の言葉で:
- 定期的にPC操作を完了しない場合は、待ち時間の短いコアが適しています。
- PCでCPU集約的な作業を頻繁に行う場合は、汎用コアが適しています。
- コンピュータをさりげなく使用してビデオ、音楽を閲覧して再生する場合は、低レイテンシが適しています。
- ゲームをプレイする場合の低レイテンシとユニバーサルの理論的な違いは、低レイテンシが1つの場合を除くすべてのケースで勝つということです。ただし、これはSSDが保持されているかどうか、および基本SSDとしてのSSD品質によって異なります。最高速度のPCI-Express SSDは6倍の速度で動作します。従来のハードドライブの速度は0.1倍です。その結果、SSDは従来のハードドライブより60倍高速です。
基本的に、ユニバーサルコアは最も短い時間で最も多くのタスクを実行しますが、遅延時間の短いコアはカーネルやシステムにバグが発生しないという仮定の下でPCの反応性を最大化します。
ほとんどの人にとって、遅延時間の短いコアが最も適しています。しかし、いつもPCにやることが多い場合は、General Purpose Coreが適しています。
つまり、すべてのコアのCPU負荷が時間の60%から90%未満の場合は、遅延時間の短いコアが適しています。一方、すべてのコアのCPU負荷がほとんどの場合80%、90%以上の場合、汎用コアが適しています。
クイズ:ベンチマークでどのコアスコアが良いですか?待機時間をデフォルトのパラメータとして無視する限り、Universalは常に競争に勝ちますが、待ち時間が短いことは委任する準備ができたタコが隣にあるのと同じです。
答え4
なぜなら折衷案だからです。プロセスの切り替えや割り込みの入力/終了には時間がかかります。たとえば、スケジューラを250 Hzではなく1000 Hzで実行すると、タイマー割り込みが発生し、プロセスが4倍頻繁に切り替わる可能性があります。これにより、プロセスをより頻繁に実行できるため、応答性が向上します。しかし、人間としては違いは感じられません(250Hzは4ミリ秒に1回を意味し、これはすでに人間の反応時間よりはるかに高速です)。
処理能力や I/O スループットには有限な量があり、スケジューラをより頻繁に呼び出すと、その一部が無駄になるという意味です。