ティックレスで高解像度のタイマーを使用している場合、1000 HZ linuxカーネルが必要ですか?


13

サーバーのパフォーマンスを改善しようとしています。低ジッター(10ミリ秒未満の変動)が必要なプロセスがいくつかあります。

i7-920(4つの物理コア、8つはHT)で最大4つの負荷平均を持っています。コアユーザーモードの40%〜90%の範囲で約10のプロセスがあります。システム使用量は合計3%です。合計CPU使用率は最大80%です。

ティックレスタイマーと高解像度タイマーが既に設定されている場合、カーネルを100hzから1000hzに設定するとジッターが改善されますか?

このページは、まだ何かをしていることを示しているようです。https://lkml.org/lkml/2009/4/28/401

自発的(PREEMPT_VOLUNTARY)からプリエンプティブ(PREEMPT)に変更するのはどうですか?


OSディストリビューションの詳細/バージョン?
ewwhite

Ubuntu 11.10 64ビットサーバーLinux 3.3カーネル。
ボブ

ユーザーモードの負荷は十分にあります。システム時間は比較的無視できます。そこでカーネルの調整可能パラメータの周りをダンスすることはお勧めしません。または、リアルタイムのようなスケジュールを取得することを実現したいですか?
-yrk

システムの使用率が低い場合、応答性に違いはないということですか?
ボブ

回答:


4

サーバーのパフォーマンスを改善しようとしています。低ジッター(10ミリ秒未満の変動)が必要なプロセスがいくつかあります。

リアルタイムではパフォーマンスは向上しません。システム全体がスムーズに動作しますが、実際には少し遅くなります。言い換えれば、スループットとレイテンシーの関係です。それが本当に必要なものである場合、いくつかのオプションがあります:

  • 300 Hzまたは1 KHzのPREEMPTを使用し、ティックレスを使用しないでください
  • を使用してniceschedtoolニーズに応じて適切な優先順位/クラスを割り当てます
  • RTまたはBFSを試してください

ticklessの使用の何が問題になっていますか?
ボブ

1
@Bob、省電力には適していますが、レイテンシを気にする場合はオフにすることをお勧めします。たとえば、ck.kolivas.org
patches / bfs /

3

低ジッタが重要な場合は、はい、1000hzとPREEMPTの両方を使用できます。

これらのプロセスが本当に時間に敏感な場合、おそらくリアルタイム指向のパッチ/カーネル、または少なくともrtprioなどのプロセスレベルのスケジューリングパラメーターが必要になるでしょう。

典型的な用途はオーディオサーバーです。jackaudioからのアドバイスなどをご覧ください


3

1)ティックレスを使用しないでください。それはまだ非常に実験的であり、作業中の開発者以外にはお勧めできません。また、省電力にも役立ちます。

2)完全にプリエンティブルなシステムはデスクターの応答性を向上させると想定されていますが、任意のプリエンプティブは一般的な用途(応答性とスループットの組み合わせ)に使用されます。サーバーがSMP(マルチコア)を取得した場合、ほとんどの作業はコアで実行され、割り込みなしで実行されるため、プリエンプティブではない可能性があります。

3)1000Hzはデスクトップの価値であり、オーバーヘッドが発生しますが、たとえばゲームなどをプレイできます。300 Hzはビデオに推奨される値です(そのため、スタッフはスケジュールを変更でき、フレームを見逃すことはありません)が、100 Hzは最高のスループットを提供します(ただし、低遅延のネットワークスタッフには向いていません)。

(RTパッチを使用せずに)できるだけ安定したい場合は、定期的なティック(安定性)ノンプリエンプティブ(安定性)タイマー周波数(最高、応答性と低レイテンシーの場合は1000、遅延の場合は100最高のスループットですが、タイマーの解像度は10ミリ秒です。たとえば、少なくとも10ミリ秒で実行されます)

これがいくらか役立つことを願っています。

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