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

上次更新时间:2020 年 8 月 13 日

如何确定运行 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

解决方法

查找时钟源

打开 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

这篇文章对您有帮助吗?


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