

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

# 比較 Linux 執行個體的時間戳記
<a name="compare-timestamps-with-clockbound"></a>

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

ClockBound 是一種開放原始碼常駐程式和程式庫。若要進一步了解 ClockBound (包括安裝指示)，請參閱 [GitHub](https://github.com/aws/clock-bound) 上的 *ClockBound*。

ClockBound 僅支援 Linux 執行個體。

如果您正在使用連接 PTP 硬體時鐘的直接 PTP 連線，您的時間常駐程式 (例如 chrony) 將低估時鐘誤差範圍。這是因為 PTP 硬體時鐘不會像 NTP 那樣傳遞正確的誤差範圍資訊至 chrony。因此，時鐘同步處理常駐程式會假設時鐘是根據 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 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}}
   ```

1. 若要擷取 PTP 硬體時鐘錯誤繫結，請執行下列命令。包含上一個步驟的 PCI 插槽名稱。

   ```
   cat /sys/bus/pci/devices/{{0000:00:03.0}}/phc_error_bound
   ```

   輸出即為 PTP 硬體時鐘的時鐘誤差範圍 (以奈秒為單位)。

若要計算使用直接 PTP 連線連接 PTP 硬體時鐘時，特定時間點的正確時鐘誤差範圍，您必須在 chrony 輪詢 PTP 硬體時鐘時，從 chrony 或 ClockBound 新增時鐘誤差範圍。如需有關測量和監控時鐘準確度的詳細資訊，請參閱[使用 Amazon Time Sync Service 和 Amazon CloudWatch 管理 Amazon EC2 執行個體時鐘準確度：第 1 部分](https://aws.amazon.com/blogs/mt/manage-amazon-ec2-instance-clock-accuracy-using-amazon-time-sync-service-and-amazon-cloudwatch-part-1/)。