Linux を実行する EC2 インスタンスのクロックソースを管理する方法を教えてください。

最終更新日: 2022 年 2 月 7 日

Linux を実行する Amazon Elastic Compute Cloud (Amazon EC2) インスタンスで使用されるクロックソースを判断する方法と、それを変更する方法を教えてください。

簡単な説明

SSH クライアントを使用して、現在のクロックソースの確認、利用可能なクロックソースの一覧表示、またはクロックソースの変更を行うことができます。

注: Hardware Virtual Machine (HVM) インスタンスには、Xen、Time Stamp Counter (TSC)、High Precision Event Time (HPET)、Advanced Configuration and Power Interface Specification (ACPI) など、さまざまなクロックソースが用意されています。AWS Xen Hypervisor で起動される EC2 インスタンスの場合は、tsc クロックソースを使用するのがベストプラクティスです。C5 や M5 などのその他の EC2 インスタンスタイプでは、AWS Nitro Hypervisor を使用します。AWS Nitro Hypervisor の推奨クロックソースは kvm クロックです。

注: AWS Graviton2 プロセッサは arch_sys_counter をクロックソースとして使用します。

解決方法

クロックソースの検索方法

SSH クライアントを EC2 インスタンスで開き、以下のコマンドを実行して現在のクロックソースと利用可能なクロックソースを確認します。

現在設定されているクロックソースを確認するには、 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

この記事はお役に立ちましたか?


請求に関するサポートまたは技術サポートが必要ですか?