Linux を実行する EC2 インスタンスのクロックソースを管理する方法を教えてください。
最終更新日: 2020 年 8 月 13 日
Linux を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで使用されるクロックソースを判断する方法と、それを変更する方法を教えてください。
簡単な説明
SSH クライアントを使用すると、現在のクロックソースの検索、使用可能なクロックソースのリスト、またはクロックソースの変更を行うことができます。
注意: ハードウェア仮想マシン (HVM) インスタンスには、Xen、タイムスタンプカウンター (TSC)、高精度イベント タイマー (HPET)、アドバンスドコンフィグレーション・アンド・パワーインターフェイス (ACPI) など、さまざまなクロックソースが用意されています。AWS Xen Hypervisor で起動される EC2 インスタンスの場合は、tsc クロックソースを使用するのがベストプラクティスです。C5 や M5 などのその他の EC2 インスタンスタイプでは、AWS Nitro Hypervisor を使用します。AWS Nitro Hypervisor の推奨クロックソースは kvm クロックです。
解決方法
クロックソースの検索方法
EC2 インスタンスで SSH クライアントを開き、次のコマンドを実行して現在利用可能なクロックソースを検索します。
現在のクロックソースを検索するには、current_clocksource コマンドを使用してファイルの内容を一覧表示します。
cat /sys/devices/system/clocksource/clocksource0/current_clocksource
xen
クロックソースを一覧表示するには、available_clocksource コマンドを使用します。
cat /sys/devices/system/clocksource/clocksource0/available_clocksource
xen tsc hpet acpi_pm
現在のクロックソースを別の値に設定する方法
1. スーパーユーザー権限で bash を実行し、current_clocksource を上書きします。
sudo bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'
2. dmesg コマンドを実行して、カーネルメッセージを表示します。
dmesg | less
上書きが成功すると、次のメッセージが表示されます。
clocksource: Switched to clocksource tsc
注意: システムを再起動すると、Linux カーネルがクロックソースをリセットします。
システムブートローダー中にクロックソースを設定する方法
1. カーネルコマンドラインパラメータで clocksource を設定します。
たとえば、grub2 を使用し、クロックソースを「tsc」に設定する場合は、/etc/default/grub ファイルを編集し、GRUB_CMDLINE_LINUX オプションに clocksource=tsc tsc=reliable を追加します。
GRUB_CMDLINE_LINUX="console=tty0 crashkernel=auto console=ttyS0,115200 clocksource=tsc tsc=reliable"
2. grub.cfg ファイルを生成します。
grub2-mkconfig -o /boot/grub2/grub.cfg