如何管理运行 Linux 的 EC2 实例的时钟源?

上次更新日期:2022 年 2 月 7 日

如何确定运行 Linux 的 Amazon Elastic Compute Cloud (Amazon EC2) 实例使用的时钟源以及如何更改它?

简短描述

通过使用​ SSH 客户端,您可以找到当前的时钟源,列出可用的时钟源,或更改时钟源。

注意:有很多时钟源可用于硬件虚拟机 (HVM) 实例,例如 Xen、时间戳计数器 (TSC)、高精度事件时间 (HPET) 或高级配置和电源接口规范 (ACPI)。对于在 AWS Xen 管理程序上启动的 EC2 实例,最佳实践是使用 tsc 时钟源。其他 EC2 实例类型,例如 C5 或 M5,使用的是 AWS Nitro 管理程序。为 AWS Nitro 管理程序推荐的时钟源是 kvm-clock

请注意: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_C MDLINE_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

这篇文章对您有帮助吗?


您是否需要账单或技术支持?