比較 Linux 執行個體的時間戳記 - Amazon Elastic Compute Cloud

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

比較 Linux 執行個體的時間戳記

如果您使用的是 Amazon Time Sync Service,則可以將 Amazon EC2 Linux 執行個體上的時間戳記與 ClockBound 進行比較,以判斷事件的真實時間。 ClockBound 會測量 EC2 執行個體的時鐘準確性,並可讓您檢查指定時間戳記是否在過去或未來與執行個體目前的時鐘相關。此資訊對於確定 EC2 執行個體間事件和交易的順序和一致性非常有用,無論每個執行個體的地理位置為何。

ClockBound 是開放原始碼常駐程式和程式庫。若要進一步了解 ClockBound,包括安裝指示,請參閱 ClockBound on GitHub

僅 Linux 執行個體支援 ClockBound 。

如果您使用的是 PTP 硬體時鐘的直接 PTP 連線,您的時間常駐程式,例如 chrony, 會低估繫結的時鐘錯誤。這是因為 PTP 硬體時鐘未將正確的錯誤繫結資訊傳遞給 chrony,Word NTP的做法。因此,您的時鐘同步常駐程式會假設時鐘對 UTC 是準確的,因此具有 的錯誤界限0。若要測量完全錯誤界限,Nitro 系統會計算 PTP 硬體時鐘的錯誤界限,並透過 EC2 驅動程式sysfs檔案系統將其提供給 ENA 執行個體。您可以直接將此值讀取為 值,以奈秒為單位。

若要擷取繫結的 PTP 硬體時鐘錯誤
  1. 首先使用下列其中一個命令,取得 PTP 硬體時鐘裝置的正確位置。命令中的路徑會根據用來啟動執行個體的 AMI 而有所不同。

    • 針對 Amazon Linux 2:

      cat /sys/class/net/eth0/device/uevent | grep PCI_SLOT_NAME
    • 對於 Amazon Linux 2023:

      cat /sys/class/net/ens5/device/uevent | grep PCI_SLOT_NAME

    輸出是 PCI 插槽名稱,也就是 PTP 硬體時鐘裝置的位置。在此範例中,位置為 0000:00:03.0

    PCI_SLOT_NAME=0000:00:03.0
  2. 若要擷取繫結的 PTP 硬體時鐘錯誤,請執行下列命令。包含上一個步驟的 PCI 插槽名稱。

    cat /sys/bus/pci/devices/0000:00:03.0/phc_error_bound

    輸出是 PTP 硬體時鐘的時鐘錯誤界限,以奈秒為單位。

若要在使用 PTP 硬體時鐘的直接 PTP 連線時,計算在特定時間點繫結的正確時鐘錯誤,您必須新增繫結自 的時鐘錯誤 chrony or ClockBound 當時 chrony 輪詢 PTP 硬體時鐘。如需測量和監控時鐘準確性的詳細資訊,請參閱使用 Amazon Time Sync Service 和 Amazon Word – 第 1 部分管理 Amazon CloudWatch EC2執行個體時鐘準確性