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