次のカーネルパラメータは、R6からR7まで非常に異なる動作を示しており、その理由は不明です。助けてくれてありがとう。
kernel.sched_min_granularity_ns
kernel.sched_wakeup_granularity_ns
背景:
- アプリケーションはすでにRHEL6で実行されています。
- 低レイテンシ要件。
- 堅牢性のあるアプリケーション、つまり待機時間が許容しきい値レベル(事前定義済み)を超えて増加し始めるか、CPU使用率が85%を超える場合は、過負荷を避けるために新しい要求の処理を停止します。
- これでRHEL7仮想環境に展開しようとしていますが、RHEL6のようにCPUを完全に活用することはできません。 55〜60%の使用率をかろうじて達成することができ、許容可能なしきい値を超える遅延時間の急増が観察されました。
メモ:
- アプリケーションのバージョンはどちらの場合も同じです(R6 / R7)。
- データベースと構成も同じです。
- メモリ、CPU設定も同じです。
R7は、動作に影響を与える次のカーネルパラメータを変更する調整プロファイルを使用します。
kernel.sched_min_granularity_ns = 10000000
kernel.sched_wakeup_granularity_ns = 15000000
この値をR6のデフォルト値()に変更すると、kernel.sched_min_granularity_ns = 4000000
kernel.sched_wakeup_granularity_ns = 4000000
CPU使用率がR6レベルに調整されます。しかし、R6で同じ値を設定したときに何の副作用も見られず、まだCPUは以前と同様に85〜90%に拡張されました。
それでは、同じパラメータがRHEL6とRHEL7と比較して非常に異なる動作をする理由を探していますか?