0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Amazon Linux 2 EC2のクロックソースをtscに変更してみた

0
Last updated at Posted at 2026-07-01

はじめに

Amazon Linux 2(AL2)で起動したEC2インスタンスのクロックソースを tsc に変更してみました。

従来の xen クロックソースは古い世代のものですが、今回、MaketPlaceのAMIからAL2のEC2を起動したところ、t2系インスタンスが選択できず、結果としてクロックソースが xen ではありませんでした。

公式サイト
https://repost.aws/ja/knowledge-center/manage-ec2-linux-clock-source

現在のクロックソース 現在はkvmのクロックでした

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

利用可能なクロックソース kvm-clock tsc hpet acpi_pmでした

$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
kvm-clock tsc hpet acpi_pm

rootに昇格した

$ sudo su -
#

スーパーユーザー権限で bash を実行し、current_clocksource を上書きした

# bash -c 'echo tsc > /sys/devices/system/clocksource/clocksource0/current_clocksource'

現在のクロックソースはtscになった

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

dmesg コマンドを実行して、カーネルメッセージを表示した

# dmesg | tail -n 3
[    3.802203] RPC: Registered tcp NFSv4.1 backchannel transport module.
[    5.314520] ena 0000:00:05.0 eth0: Local page cache is disabled for less than 16 channels
[  684.330899] clocksource: Switched to clocksource tsc ←tscにクロックソースがスイッチしたメッセージが出力した

EC2を再起動してみた

# reboot

再起動したため稼働時間が2分程度です

# uptime
 00:17:56 up 2 min,  1 user,  load average: 0.02, 0.02, 0.00

kvm-clockに戻りました

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

クロックソースを永続的に設定する方法を試した

ブートローダのファイルを念のためバックアップした

# cp -p /etc/default/grub /home/ec2-user/grub_20250727
# ls -tlr /home/ec2-user/grub_20250727
-rw-r--r-- 1 root root 256 Jul  8 06:10 /home/ec2-user/grub_20250727

GRUB_CMDLINE_LINUX_DEFAULT=の値の末尾に「clocksource=tsc tsc=reliable"」を追加

# vi /etc/default/grub

GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 clocksource=tsc tsc=reliable"

変更前と変更後のブートローダのファイルで比較する

# diff -u /home/ec2-user/grub_20250727 /etc/default/grub
--- /home/ec2-user/grub_20250727        2025-07-08 06:10:21.883244817 +0900
+++ /etc/default/grub   2025-07-27 00:23:00.155597314 +0900
@@ -1,4 +1,4 @@
-GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0"
+GRUB_CMDLINE_LINUX_DEFAULT="console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 clocksource=tsc tsc=reliable"
 GRUB_TIMEOUT=0
 GRUB_DISABLE_RECOVERY="true"
 GRUB_TERMINAL="ec2-console"

/boot/grub2/grub.cfgファイルを生成しました

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.355-280.651.amzn2.x86_64
Found initrd image: /boot/initramfs-4.14.355-280.651.amzn2.x86_64.img
done

/boot/grub2/grub.cfgファイルに「locksource=tsc tsc=reliable」が追加されたことを確認した

cat /boot/grub2/grub.cfg | grep tsc
        linux /boot/vmlinuz-4.14.355-280.651.amzn2.x86_64 root=UUID=3540acef-7185-443c-a960-648a17aac375 ro  console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0 clocksource=tsc tsc=reliable

現在のクロックソースを確認したところ、まだKVMのままです。

# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

TeraTermをexitでログアウトして再ログインをする
まだ変わっていない!!
現在のクロックソースを確認したところ、まだKVMのままです。

$ sudo su -
# cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

サーバを再起動しました

# reboot

やっと現在のクロックソースがtscに変わりました

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc

切り戻し クロークソースをtscからKVMに戻す

まずは切り戻し前に現在のブートローダのファイルをバックアップを取得した

# cp -p /etc/default/grub /home/ec2-user/grub_tsc_20250727

# ls -tlr /home/ec2-user/grub_tsc_20250727
-rw-r--r-- 1 root root 285 Jul 27 00:23 /home/ec2-user/grub_tsc_20250727

前回のバックアップからブートローダのファイルを上書きして戻します

# cp -p -f /home/ec2-user/grub_20250727 /etc/default/grub
# cp: overwrite ‘/etc/default/grub’? y

/boot/grub2/grub.cfgファイルを生成した

# grub2-mkconfig -o /boot/grub2/grub.cfg
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.14.355-280.651.amzn2.x86_64
Found initrd image: /boot/initramfs-4.14.355-280.651.amzn2.x86_64.img
done

/boot/grub2/grub.cfgファイルにtscで検索しても検索ヒットしなくなりました

# cat /boot/grub2/grub.cfg | grep tsc
[root@ip-10-0-6-214 ~]#

カーネルの設定を確認したらtscのパラメータが消えていました

cat /boot/grub2/grub.cfg | grep /boot/vmlinuz
        linux /boot/vmlinuz-4.14.355-280.651.amzn2.x86_64 root=UUID=3540acef-7185-443c-a960-648a17aac375 ro  console=tty0 console=ttyS0,115200n8 net.ifnames=0 biosdevname=0 nvme_core.io_timeout=4294967295 rd.emergency=poweroff rd.shell=0

現在のクロックソースがtscであることを確認した

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

サーバを再起動した

# reboot

現在のクロックソースがKVMであることを確認した。切り戻しが成功しました!!

$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
kvm-clock

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

KVMに切り戻しした時に以下のメッセージが出力を確認しました

# dmesg | grep kvm

[    0.000000] kvm-clock: Using msrs 4b564d01 and 4b564d00
[    0.000000] kvm-clock: cpu 0, msr 0:7d947001, primary cpu clock
[    0.000000] kvm-clock: using sched offset of 1657166596 cycles
[    0.000000] clocksource: kvm-clock: mask: 0xffffffffffffffff max_cycles: 0x1cd42e4dffb, max_idle_ns: 881590591483 ns
[    0.000000] kvm-stealtime: cpu 0, msr 7d61b200
[    0.004000] kvm-clock: cpu 1, msr 0:7d947041, secondary cpu clock
[    0.220000] kvm-stealtime: cpu 1, msr 7d71b200
[    0.526072] clocksource: Switched to clocksource kvm-clock ←このメッセージ

まとめ:palm_tree:

ブートローダの設定ファイルを変更した場合は、サーバを再起動しないと反映されないことを学びました。

また、過去のブートローダ設定ファイル(/etc/default/grub)をバックアップしておくことで、設定を切り戻すことができ、tsc から kvm へのクロックソースの変更も問題なく行えました。

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?