如何確定執行 Linux 的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體使用的時鐘來源,以及如何變更時鐘來源?
簡短描述
透過使用 SSH 用戶端,您可以尋找目前的時鐘來源、列出可用的時鐘來源或變更時鐘來源。
**注意:**硬體虛擬機器 (HVM) 執行個體有許多時鐘來源,例如 Xen、時間戳記計數器 (TSC)、高精確度事件時間 (HPET) 或進階組態與電源介面規格 (ACPI)。對於在 AWS Xen Hypervisor 上啟動的 EC2 執行個體,最佳實務是使用 tsc 時鐘來源。其他 EC2 執行個體類型 (例如 C5 或 M5) 均使用 AWS Nitro Hypervisor。AWS Nitro Hypervisor 的建議時鐘來源為 kvm-clock。
**注意:**AWS Graviton2 處理器使用 arch_sys_counter 作為時鐘來源。
解決方法
尋找時鐘來源
在 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
相關資訊
為 Linux 執行個體設定時間