8.4. CPU パフォーマンスのスパイクの低減
レイテンシーが急増する一般的な原因は、複数の CPU がカーネルタイマーティックハンドラー内の共通のロックで競合することです。競合の原因となるロックは、通常 xtime_lock
です。これは時間管理システムと Read-Copy-Update (RCU) 構造のロックによって使用されます。skew_tick=1
を使用すると、CPU ごとのタイマーティックをオフセットして別の時間に開始させ、潜在的なロックの競合を回避できます。
skew_tick
カーネルコマンドラインパラメーターは、コア数が多く、レイテンシーの影響を受けやすいワークロードを備えた中規模から大規模のシステムでのレイテンシーの変動を防ぐ可能性があります。
前提条件
- 管理者権限がある。
手順
grubby
でskew_tick=1
パラメーターを有効にします。# grubby --update-kernel=ALL --args="skew_tick=1"
変更を有効にするために再起動します。
# reboot
skew_tick=1
を有効にすると消費電力が大幅に増加します。そのため、レイテンシーの影響を受けやすいリアルタイムワークロードを実行しており、安定したレイテンシーが消費電力よりも重要な考慮事項である場合にのみ、skew
ブートパラメーターを有効にしてください。
検証
/proc/cmdline
ファイルを表示し、skew_tick=1
が指定されていることを確認します。/proc/cmdline
ファイルには、カーネルに渡されるパラメーターが表示されます。
/proc/cmdline
ファイルの新しい設定を確認します。# cat /proc/cmdline