カーネルタイマー割り込み頻度を減らす

カーネルタイマー割り込み頻度を減らす

Gentooを使用して仮想マシンをゲストとして実行すると、tik_periodic関数がかなりのオーバーヘッドを引き起こすことがわかりました。 (これはすべてのタイマー割り込みで実行される機能です。)この関数はwrite_seqlocksを使用して、オーバーヘッドが発生するグローバル jiffy を更新します。

私の設定ファイルにHZと関連エントリがあります。

sharan013@sitmac4:~$ cat /boot/config | egrep 'HZ|TIME'
# CONFIG_RCU_FAST_NO_HZ is not set
CONFIG_NO_HZ=y
# CONFIG_HZ_100 is not set
# CONFIG_HZ_250 is not set
# CONFIG_HZ_300 is not set
CONFIG_HZ_1000=y
CONFIG_HZ=1000
# CONFIG_MACHZ_WDT is not set
CONFIG_TIMERFD=y
CONFIG_HIGH_RES_TIMERS=y
CONFIG_X86_CYCLONE_TIMER=y
CONFIG_HPET_TIMER=y

明らかに設定は1000に設定されていますが、これによりsysconf(_SC_CLK_TCK)タイマーの頻度は100です。それでは、私のシステムタイマー周波数は何ですか?

私が望むのは、頻度を100に下げるか、可能であればさらに下げることです。これはポーリング/選択とスケジューラの時間分割の相互作用と精度に影響を与える可能性がありますが、タイマーの中断を減らすためにこれらを犠牲にする準備ができています。 VMの速度が速くなるからです。
私が何をすべきかを把握しようとしたときに設定ファイルを変更して実行できることを読んでいましたが、他の場所では実行パラメータにDivider = 10を追加すると何が起こるかを読みました。他の場所では、次の内容を読みました。(CONFIG_HIGH_RES_TIMERS)タイマーの頻度を上げずに低レイテンシを達成するようにタイマーを設定することができ、チックレスシステムで同じ効果を得ることができる場合は、これらの機能は必要ありませんCONFIG_NO_HZ
正しいアプローチが何であるかは非常に混乱しています。
私が望むのは、タイマー割り込みをできるだけ低くすることです。
これを行う正しい方法がわかりますか?

ありがとう、シアラン

ベストアンサー1

おすすめ記事