3.4. カーネルコマンドラインオプションを使用した C ステートの無効化


ホスト上のアプリケーションのレイテンシーが C ステートによって影響を受けているかどうかをテストするには、カーネルコマンドラインオプションで消費状態 (C ステート) を一時的に無効にします。

processor.max_cstate および intel_idle.max_cstate カーネルコマンドラインパラメーターにより、CPU コアが使用できる最大の C ステートを設定します。たとえば、パラメーターを 1 に設定すると、CPU が C1 より下の C ステートを要求することは決してなくなります。

特定の状態をハードコーディングしないようにするには、より動的なソリューションの使用を検討してください。カスタム TuneD プロファイルを使用した C-state の無効化 を参照してください。

前提条件

  • tuned サービスが実行されていないか、C ステート設定を更新しないように設定されている。

手順

  1. システムが使用するアイドル状態のドライバーを表示します。

    # cat /sys/devices/system/cpu/cpuidle/current_driver
    intel_idle

    ドライバーの詳細は、kernel-doc パッケージによって提供される /usr/share/doc/kernel-doc-<version>/Documentation/admin-guide/pm/cpuidle.rst ファイルを参照してください。

  2. ホストが intel_idle ドライバーを使用している場合は、intel_idle.max_cstate カーネルパラメーターを設定して、CPU コアで使用可能な最高 C ステートを定義します。

    # grubby --update-kernel=ALL --args="intel_idle.max_cstate=0"

    intel_idle.max_cstate=0 を設定すると、intel_idle ドライバーが無効になります。その結果、カーネルが acpi_idle ドライバーを使用するようになります。このドライバーは、EFI ファームウェアに設定されている C ステート値を使用します。そのため、これらの C ステート設定をオーバーライドするには、processor.max_cstate も設定してください。

  3. CPU ベンダーに関係なく、各ホスト上で CPU コアが利用できる最高の C ステートを設定します。

    # grubby --update-kernel=ALL --args="processor.max_cstate=0"
    重要

    intel_idle.max_cstate=0 に加えて processor.max_cstate=0 を設定すると、acpi_idle ドライバーは processor.max_cstate の値をオーバーライドして 1 に設定します。その結果、processor.max_cstate=0 intel_idle.max_cstate=0 の場合、カーネルが使用する最高の C ステートは C0 ではなく C1 になります。

  4. 変更を有効にするためにホストを再起動します。

    # reboot

検証

  1. 最大の C ステートを表示します。

    # cat /sys/module/processor/parameters/max_cstate
    1
  2. ホストが intel_idle ドライバーを使用している場合は、最大の C ステートを表示します。

    # cat /sys/module/intel_idle/parameters/max_cstate
    0
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

Red Hat ドキュメントについて

Legal Notice

Theme

© 2026 Red Hat
トップに戻る