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

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

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

如果您使用的是 Amazon 時間同步服務,則可以將 Amazon EC2 Linux 執行個體上的時間戳記與比較, ClockBound 以判斷事件的真實時間。 ClockBound 測量EC2實例的時鐘準確性,並允許您檢查給定的時間戳是否處於過去還是 future 與實例的當前時鐘相關。這項資訊對於判斷執行個體間事件和交易的順序和一致性非常重要,而不受每個EC2執行個體的地理位置影響。

ClockBound 是一個開源守護進程和庫。要進一步了解 ClockBound,包括安裝說明,請參閱 ClockBound(詳見)GitHub

ClockBound 僅支援 Linux 執行個體。

如果您正在使用直接PTP連接到PTP硬件時鐘,則您的時間守護進程,例如 chrony,將低估時鐘誤差綁定。這是因為PTP硬件時鐘沒有將正確的錯誤綁定信息傳遞給 chrony,這樣NTP做。因此,您的時鐘同步處理程式會假設時脈準確無誤UTC,因此具有錯誤繫結0。為了測量完整的錯誤綁定,Nitro 系統會計算PTP硬件時鐘的錯誤綁定,並通過ENA驅動程序sysfs文件系統將其提供給您的EC2實例。您可以直接將其作為一個值讀取,以納秒為單位。

檢索綁定的PTP硬件時鐘錯誤
  1. 首先通過使用以下命令之一獲取PTP硬件時鐘設備的正確位置。根據AMI用來啟動執行個體的不同,命令中的路徑會有所不同。

    • 針對 Amazon Linux 2:

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

      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 或 ClockBound 在那個時候 chrony 輪詢PTP硬體時鐘。有關測量和監控時鐘準確性的詳細資訊,請參閱使用 Amazon 時間同步服務和 Amazon 管理 Amazon EC2 執行個體時鐘準確性 CloudWatch — 第 1 部分