本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
比較 Linux 執行個體的時間戳記
如果您使用的是 Amazon 時間同步服務,則可以將 Amazon EC2 Linux 執行個體上的時間戳記與比較, ClockBound 以判斷事件的真實時間。 ClockBound 測量EC2實例的時鐘準確性,並允許您檢查給定的時間戳是否處於過去還是 future 與實例的當前時鐘相關。這項資訊對於判斷執行個體間事件和交易的順序和一致性非常重要,而不受每個EC2執行個體的地理位置影響。
ClockBound 是一個開源守護進程和庫。要進一步了解 ClockBound,包括安裝說明,請參閱 ClockBound
ClockBound 僅支援 Linux 執行個體。
如果您正在使用直接PTP連接到PTP硬件時鐘,則您的時間守護進程,例如 chrony,將低估時鐘誤差綁定。這是因為PTP硬件時鐘沒有將正確的錯誤綁定信息傳遞給 chrony,這樣NTP做。因此,您的時鐘同步處理程式會假設時脈準確無誤UTC,因此具有錯誤繫結0
。為了測量完整的錯誤綁定,Nitro 系統會計算PTP硬件時鐘的錯誤綁定,並通過ENA驅動程序sysfs
文件系統將其提供給您的EC2實例。您可以直接將其作為一個值讀取,以納秒為單位。
檢索綁定的PTP硬件時鐘錯誤
-
首先通過使用以下命令之一獲取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
-
-
要檢索綁定的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 部分