全部產品
Search
文件中心

Elastic Compute Service:PTP時鐘同步服務

更新時間:Oct 22, 2025

精密時間協議(PTP)通過硬體級時間戳記和動態路徑補償,實現亞微秒級精準時鐘同步,保障分布式系統時序一致性,適用於高頻金融交易等對時間精度要求嚴苛的情境。

什麼是PTP

重要

PTP時鐘同步功能目前在邀測中,如需使用,請提交工單申請。

PTP(Precision Time Protocol,精密時間協議)是基於IEEE 1588標準的高精度網路時間同步協議。它通過硬體級時間戳記、動態路徑補償及主從時鐘智能協商等技術,解決了傳統網路時間協議(如NTP)主要因軟體處理延遲和網路抖動等因素造成的毫秒級誤差瓶頸,可為分布式系統中的裝置提供亞微秒級的時間同步服務。

相對於NTP,PTP通過硬體時間戳記卸載計算,在降低CPU/網路資源消耗的同時,實現更高精度:

特性

PTP

NTP

精度

亞微秒級

毫秒級

時間戳記實現

硬體支援(如PHC裝置)

軟體實現

網路環境

區域網路或低延遲

廣域網路

資源消耗

低(報文互動頻率可控)

較高(依賴頻繁的報文切換)

典型應用

金融交易

互連網伺服器、普通裝置

阿里雲PTP同步架構採用可用性區域粒度主備原子鐘冗餘部署,主原子鐘同步GPS時間後,通過IEEE 1588 PTP邊界時鐘協議構建層級時間同步拓撲,向ECS執行個體逐級傳遞亞微秒級時間訊號。

ECS執行個體預設運行Chrony或者NTP服務進行時間同步,可以在支援的地區、執行個體規格上開啟PTP時鐘同步服務,實現高精度時間同步。

適用情境

金融高頻交易:PTP的亞微秒級同步精度與硬體時間戳記保障跨證券交易所訂單時序嚴格對齊,規避時鐘偏差導致的交易順序爭議;結合低延遲網路的亞微秒級抖動控制,滿足高頻交易對時序公平及合規的嚴苛需求。

使用限制

  • 支援的地區和可用性區域

    地區名稱

    地區ID

    可用性區域名稱

    可用性區域ID

    中國香港

    cn-hongkong

    可用性區域B(邀測)

    cn-hongkong-b

    可用性區域C(邀測)

    cn-hongkong-c

    可用性區域D(邀測)

    cn-hongkong-d

  • 支援的執行個體規格類型系列

    可以通過DescribeInstanceTypes介面查詢規格支援情況,返回參數Clock中的PtpSupportsupported表示支援,不支援的規格不返回PtpSupport參數。
  • 支援的鏡像:支援Linux鏡像,建議使用受維護的官方鏡像版本。

    點擊查看支援的鏡像列表

    作業系統

    支援的版本

    Alibaba Cloud Linux

    2、3、4

    AlmaLinux

    8.5~8.10、9.0~9.6、10.0

    Anolis OS

    8.2、8.4、8.6、8.8~8.10

    CentOS Stream

    8~10

    Debian

    11.0~11.11、12.2、12.4~12.11

    Fedora

    33~41

    OpenSUSE

    15.2~15.6

    Rocky Linux

    8.5~8.10、9.0~9.6、10.0

    Ubuntu

    18.04 LTS~24.04 LTS

  • Linux核心版本須為4.12或更高。

ECS執行個體開啟/關閉PTP

開啟PTP時鐘同步服務

  1. 控制台上開啟PTP

    • 建立執行個體

      前往ECS控制台-自訂購買頁面,選擇支援PTP的地區、執行個體規格、鏡像後,在進階選項中選擇開啟PTP時鐘同步服務。

    • 已有執行個體

      若執行個體當前物理伺服器不支援PTP,需重啟後(遷移到支援PTP的物理伺服器)方可開啟。
      1. 前往單擊目標執行個體ID進入執行個體詳情頁。

      2. 執行個體詳情頁全部操作中選擇執行個體設定 > 設定PTP時鐘同步服務

      3. 設定PTP時鐘同步服務對話方塊中,開啟PTP時鐘同步服務。

        點擊確定後,會彈出PTP時鐘同步任務視窗。

      4. 點擊任務ID,查看任務進度,待任務結束後,彈出框自動關閉,執行個體完成開啟PTP時鐘同步服務。

  2. 遠端連線Linux執行個體

  3. 公用鏡像已預裝雲助手。未使用公用鏡像的執行個體,需使用安裝包。

    雲助手

    1. 查看PHC硬體裝置是否存在。

      若PHC硬體裝置不存在,請提交工單
      lspci | grep 500c

      開啟PTP時鐘同步服務後,返回如下所示資訊:

      image

    2. 執行雲助手命令,檢查其版本。版本須不低於2.2.3.631。若版本不符,請升級雲助手

      acs-plugin-manager --version
    3. 確認雲助手外掛程式在目前範圍的可用性。

      若雲助手外掛程式不存在,請提交工單
      acs-plugin-manager --list | grep ACS-PTP-Monitor
    4. 通過雲助手安裝驅動。

      命令通常在10分鐘內完成。
      acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --install --timeout 0
    5. 開啟ptp-monitor服務。

      更新chrony配置,重啟chronyd,啟用ptp-monitor開機自啟,並啟動ptp-monitor。
      acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --start

    安裝包

    1. 執行以下命令,查看PHC硬體裝置。

      lspci | grep 500c

      開啟PTP時鐘同步服務後,返回如下所示資訊:

      image

    2. 執行以下命令,擷取指令碼壓縮包(需開通公網)。

      ECS執行個體開啟PTP後,通過ptp-monitor的指令碼來完成一鍵部署及配置。
      wget https://ptp-monitor-hk.oss-cn-hongkong.aliyuncs.com/ptp-monitor/ptp-monitor-latest.zip
    3. 執行以下命令,解壓壓縮包。

      yum install -y unzip
      unzip ptp-monitor-latest.zip -d ptp-monitor-latest
      cd ptp-monitor-latest
      Ubuntu、Debian等系統可以通過sudo apt update && sudo apt install unzip命令安裝unzip
    4. 執行以下命令,完成驅動的編譯及安裝。

      bash ptp-monitor.sh --install
    5. 執行以下命令,確認PTP驅動是否已安裝完成。

      ptp-monitor會根據當前系統版本編譯PTP驅動,驅動名稱為ptp_cipu
      lsmod | grep ptp_cipu
    6. 執行以下命令,確認PTP裝置檔案是否已成功產生。

      ll /dev/ptp*

      若返回裝置檔案資訊,表示驅動運行正常:

      image

    7. 執行以下命令,完成chrony配置、重啟chronyd服務、運行ptp-monitor服務。

      bash ptp-monitor.sh --start

      重啟chronyd服務後,約幾十秒內PTP時鐘源生效,可通過查看執行個體的PTP時鐘同步服務進行確認。

關閉PTP時鐘同步服務

  1. 控制台上關閉PTP

    1. 前往單擊目標執行個體ID進入執行個體詳情頁。

    2. 執行個體詳情頁全部操作中選擇執行個體設定 > 設定PTP時鐘同步服務

    3. 設定PTP時鐘同步服務對話方塊中,關閉PTP時鐘同步服務。

      點擊確定後,會彈出PTP時鐘同步任務視窗。

    4. 點擊任務ID,查看任務進度,待任務結束後,彈出框自動關閉,執行個體完成關閉PTP時鐘同步服務。

  2. 遠端連線Linux執行個體

  3. 公用鏡像已預裝雲助手。未使用公用鏡像的執行個體,需使用安裝包。

    雲助手

    執行以下命令,停止ptp-monitor服務。

    關閉PTP將移除PTP裝置。更新chrony設定檔,移除PTP硬體時鐘源。重啟chronyd服務恢複預設的NTP等時鐘服務。停止ptp-monitor監控程式。
    acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --stop

    安裝包

    停用PTP時鐘源。

    關閉PTP將移除PTP裝置。更新chrony設定檔,移除PTP硬體時鐘源。重啟chronyd服務恢複預設的NTP等時鐘服務。停止ptp-monitor監控程式。
    bash ptp-monitor.sh --stop

查看執行個體的PTP時鐘同步服務

執行chronyc sources命令,查看所配置的時間源(PTP、NTP)狀態。

輸出樣本

以開啟並配置了PTP時鐘同步服務的執行個體為例,下圖表示執行個體當前優先使用PTP硬體時鐘同步,同步精度達到納秒級:

image

  • MS:時間源標識符,PHC0表示PTP硬體時鐘,IP地址表示NTP伺服器

    #* 表示當前同步源,即執行個體正在使用PTP硬體時鐘同步

  • Stratum:時間源的層級,數值越小精度越高(0 為原子鐘/GPS,1 為直接連接的高精度源)

  • Poll:輪詢間隔指數,當前輪詢間隔為 2^Poll 秒(例如 Poll=4 表示 16 秒)

  • Reach:八進位值,表示最近8次同步成功率

  • LastRx:上次接收到響應的時間,單位為秒

  • Last sample:最後一次測量的時鐘位移量,格式為 位移 [原始位移] +/- 誤差,反映系統時間與源時間的差異

監控PTP時鐘同步健康度

執行chronyc tracking命令,監控、評估系統時鐘的健康狀態(時間偏差、頻率誤差、網路延遲等動態指標),確保時間敏感應用(如金融交易)的可靠性。

輸出樣本

如圖所示,時間偏差在納秒級(System time=1ns,RMS offset=1175ns),滿足高精度情境需求,且頻率誤差較低(5.213ppm),硬體時鐘穩定性良好:

image

  • System time:系統時鐘與PTP硬體時鐘PHC0的當前偏差, slow 表示系統時間慢1納秒(1 納秒=10⁻⁹ 秒)

  • RMS offset:長期統計的均方根位移量,此處為1175納秒,反映時間同步的穩定性

  • Frequency:系統時鐘的頻率偏差, slow 表示本地時鐘每秒比PTP硬體時鐘PHC0慢5.213微秒(ppm=百萬分之一)

  • Root delay:到根時間源的總網路延遲,圖中所示極低的延遲表示網路環境高度穩定

常見問題

可以通過OpenAPI的方式開啟/關閉PTP時鐘同步服務嘛?

  1. 開啟/關閉PTP時鐘同步服務。

    • 建立執行個體:調用RunInstances,指定ClockOptionsPtpStatusenableddisabled,建立開啟、關閉PTP時鐘同步服務的ECS執行個體。

    • 已有執行個體:調用ModifyInstanceClockOptions,指定PtpStatusenableddisabled,配置執行個體開啟/關閉PTP時鐘同步服務。

      成功後將返回任務ID(TaskId),可調用DescribeTasks指定TaskActionModifyInstanceClockOptionsTaskIds為對應的任務ID即時查詢PTP時鐘同步服務的啟停操作執行狀態。

  2. 調用DescribeInstances,指定AdditionalAttributesCLOCK_OPTIONS,確認執行個體的PTP時鐘同步服務是否啟用。

  3. 調用RunCommand,執行相關命令,完成配置。

PTP可以和NTP一起使用嗎?

可以。PTP不會影響NTP,chronyd會根據內部的演算法來挑選最佳的一個時鐘源,根據配置會優先選擇PTP作為時鐘源。

安裝驅動的時候,報錯dkms: command not found

安裝PTP驅動的時候,會先安裝依賴的工具包,dkms工具就是依賴之一,需要解決dkms包安裝的問題。驅動安裝失敗的具體報錯日誌可以查看/var/log/ptp-cipu-ptp-monitor.log

  • 情況1:repo源配置可能不是最新,可更新repo源後重試。

  • 情況2:到dkms官網擷取對應的安裝包。

如何設定和取消ptp-monitor程式開機自動運行

ptp-monitor是一個執行個體內部的營運組件。建議運行,但非強制。安裝後,該組件預設開機自啟動。

  • 禁用開機自啟動。

    acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --disable-service
  • 開機自動運行。

    acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --enable-service

如何卸載PTP驅動

PTP驅動名為ptp_cipu。該驅動為PTP功能所必需,其安裝不影響執行個體。如需卸載PTP驅動,可執行以下雲助手命令:

acs-plugin-manager --exec --plugin ACS-PTP-Monitor --params --uninstall