15.4. 使用するクロックソースの一時的な変更

クロックの既知の問題により、システムのメインアプリケーションに最適なクロックが使用されないことがあります。問題のあるすべてのクロックを除外した後、システムに残ったハードウェアクロックが、リアルタイムシステムの最低要件を満たせないことがあります。

重要なアプリケーションの要件は、システムごとに異なります。そのため、各アプリケーション、したがって各システムに適したクロックも異なります。一部のアプリケーションはクロックの分解能に依存し、信頼できるナノ秒の読み取りを提供するクロックの方が適しています。また、クロックを読み取るアプリケーションは、読み取りコスト (読み取り要求と結果の間隔) の小さいクロックからメリットを得ることができます。

これらのケースでは、カーネルが選択したクロックをオーバーライドできます。ただし、このオーバーライドの副次的な影響を理解し、そのハードウェアクロックの既知の欠点をトリガーしない環境を作成できる場合に限ります。

重要

カーネルは、利用可能な最適なクロックソースを自動的に選択します。選択したクロックソースのオーバーライドは、影響が明確に理解されない限り推奨されません。

前提条件

  • システムの root 権限がある。

手順

  1. 利用可能なクロックソースを表示します。

    # cat /sys/devices/system/clocksource/clocksource0/available_clocksource
    tsc hpet acpi_pm

    例として、システムで利用可能なクロックソースが TSC、HPET、および ACPI_PM であると考えてください。

  2. 使用するクロックソースの名前を /sys/devices/system/clocksource/clocksource0/current_clocksource ファイルに書き込みます。

    # echo hpet > /sys/devices/system/clocksource/clocksource0/current_clocksource
    注記

    変更は現在使用中のクロックソースに適用されます。システムの再起動後、デフォルトのクロックが使用されます。変更を永続化させるには、カーネルチューニングパラメーターの変更の永続化 を参照してください。

検証手順

  • current_clocksource ファイルを表示して、現在のクロックソースが指定されたクロックソースであることを確認します。

    # cat /sys/devices/system/clocksource/clocksource0/current_clocksource
    hpet

    この例では、システムの現在のクロックソースとして HPET を使用します。