歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

詳細解讀Linux系統中ntpq命令的使用

命令 "ntpq -q" 輸出下面這樣的一個表:


復制代碼代碼如下: remote refid st t when poll reach delay offset jitter
==============================================================================
LOCAL(0) .LOCL. 10 l 96h 64 0 0.000 0.000 0.000
*ns2.example.com 10.193.2.20 2 u 936 1024 377 31.234 3.353 3.096

更多細節
表頭

  •     remote – 用於同步的遠程節點或服務器。“LOCAL”表示本機 (當沒有遠程服務器可用時會出現)
        refid – 遠程的服務器進行同步的更高一級服務器
        st – 遠程節點或服務器的 Stratum(級別,NTP 時間同步是分層的)
        t – 類型 (u: unicast(單播) 或 manycast(選播) 客戶端, b: broadcast(廣播) 或 multicast(多播) 客戶端, l: 本地時鐘, s: 對稱節點(用於備份), A: 選播服務器, B: 廣播服務器, M: 多播服務器, 參見“Automatic Server Discovery“)
        when – 最後一次同步到現在的時間 (默認單位為秒, “h”表示小時,“d”表示天)
        poll – 同步的頻率:rfc5905建議在 NTPv4 中這個值的范圍在 4 (16秒) 至 17 (36小時) 之間(即2的指數次秒),然而觀察發現這個值的實際大小在一個小的多的范圍內 :64 (26 )秒 至 1024 (210 )秒
        reach – 一個8位的左移移位寄存器值,用來測試能否和服務器連接,每成功連接一次它的值就會增加,以 8 進制顯示
        delay – 從本地到遠程節點或服務器通信的往返時間(毫秒)
        offset – 主機與遠程節點或服務器時間源的時間偏移量,offset 越接近於0,主機和 NTP 服務器的時間越接近(以方均根表示,單位為毫秒)
        jitter – 與遠程節點同步的時間源的平均偏差(多個時間樣本中的 offset 的偏差,單位是毫秒),這個數值的絕對值越小,主機的時間就越精確

字段的統計代碼

表中第一個字符(統計代碼)是狀態標識(參見 Peer Status Word),包含 " ","x","-","#","+","*","o":

  •     " " – 無狀態,表示:
            沒有遠程通信的主機
            "LOCAL" 即本機
            (未被使用的)高層級服務器
            遠程主機使用的這台機器作為同步服務器
        “x” – 已不再使用
        “-” – 已不再使用
        “#” – 良好的遠程節點或服務器但是未被使用 (不在按同步距離排序的前六個節點中,作為備用節點使用)
        “+” – 良好的且優先使用的遠程節點或服務器(包含在組合算法中)
        “*” – 當前作為優先主同步對象的遠程節點或服務器
        “o” – PPS 節點 (當優先節點是有效時)。實際的系統同步是源於秒脈沖信號(pulse-per-second,PPS),可能通過PPS 時鐘驅動或者通過內核接口。

參考 Clock Select Algorithm.
refid

refid 有下面這些狀態值

  •     一個IP地址 – 遠程節點或服務器的 IP 地址
        .LOCL. – 本機 (當沒有遠程節點或服務器可用時)
        .PPS. – 時間標准中的“Pulse Per Second”(秒脈沖)
        .IRIG. – Inter-Range Instrumentation Group 時間碼
        .ACTS. – 美國 NIST 標准時間 電話調制器
        .NIST. –美國 NIST 標准時間電話調制器
        .PTB. – 德國 PTB 時間標准電話調制器
        .USNO. – 美國 USNO 標准時間 電話調制器
        .CHU. – CHU (HF, Ottawa, ON, Canada) 標准時間無線電接收器
        .DCFa. – DCF77 (LF, Mainflingen, Germany) 標准時間無線電接收器
        .HBG. – HBG (LF Prangins, Switzerland) 標准時間無線電接收器
        .JJY. – JJY (LF Fukushima, Japan) 標准時間無線電接收器
        .LORC. – LORAN-C station (MF) 標准時間無線電接收器,注: 不再可用 (被 eLORAN 廢棄)
        .MSF. – MSF (LF, Anthorn, Great Britain) 標准時間無線電接收器
        .TDF. – TDF (MF, Allouis, France)標准時間無線電接收器
        .WWV. – WWV (HF, Ft. Collins, CO, America) 標准時間無線電接收器
        .WWVB. – WWVB (LF, Ft. Collins, CO, America) 標准時間無線電接收器
        .WWVH. – WWVH (HF, Kauai, HI, America) 標准時間無線電接收器
        .GOES. – 美國靜止環境觀測衛星;
        .GPS. – 美國 GPS;
        .GAL. – 伽利略定位系統歐洲 GNSS;
        .ACST. – 選播服務器
        .AUTH. – 認證錯誤
        .AUTO. – Autokey (NTP 的一種認證機制)順序錯誤
        .BCST. – 廣播服務器
        .CRYPT. – Autokey 協議錯誤
        .DENY. – 服務器拒絕訪問;
        .INIT. – 關聯初始化
        .MCST. – 多播服務器
        .RATE. – (輪詢) 速率超出限定
        .TIME. – 關聯超時
        .STEP. – 間隔時長改變,偏移量比危險阈值小(1000ms) 比間隔時間 (125ms)大

操作要點

一個時間服務器只會報告時間信息而不會從客戶端更新時間(單向更新),而一個節點可以更新其他同級節點的時間,結合出一個彼此同意的時間(雙向更新)。

初次啟動時:

    除非使用 iburst 選項,客戶端通常需要花幾分鐘來和服務器同步。如果客戶端在啟動時時間與 NTP 服務器的時間差大於 1000 秒,守護進程會退出並在系統日志中記錄,讓操作者手動設置時間差小於 1000 秒後再重新啟動。如果時間差小於 1000 秒,但是大於 128 秒,會自動矯正間隔,並自動重啟守護進程。

    當第一次啟動時,時間頻率文件(通常是 ntp.drift 文件,記錄時間偏移)不存在,守護進程進入一個特殊模式來矯正頻率。當時鐘不符合規范時這會需要 900 秒。當校正完成後,守護進程創建時間頻率文件進入普通模式,並分步校正剩余的偏差。

NTP 0 層(Stratum 0 )的設備如原子鐘(铯,铷),GPS 時鐘或者其他標准時間的無線電時鐘為 1 層(Stratum 1)的時間服務器提供時間信號。NTP 只報告UTC 時間(統一協調時,Coordinated Universal Time)。客戶端程序使用時區從 UTC 導出本地時間。

NTP 協議是高精度的,使用的精度小於納秒(2的 -32 次方)。主機的時間精度和其他參數(受硬件和操作系統限制)使用命令 “ntpq -c rl” 查看(參見 rfc1305 通用變量和 rfc5905)。
“ntpq -c rl”輸出參數

  •     precision 為四捨五入值,且為 2 的冪數。因此精度為 2precision (秒)
        rootdelay – 與同步網絡中主同步服務器的總往返延時。注意這個值可以是正數或者負數,取決於時鐘的精度。
        rootdisp – 相對於同步網絡中主同步服務器的偏差(秒)
        tc – NTP 算法 PLL (phase locked loop,鎖相環路) 或 FLL (frequency locked loop,鎖頻回路) 時間常量
        mintc – NTP 算法 PLL/FLL 最小時間常亮或“最快響應
        offset – 由結合算法得出的系統時鐘偏移量(毫秒)
        frequency – 系統時鐘頻率
        sys_jitter – 由結合算法得出的系統時鐘平均偏差(毫秒)
        clk_jitter – 硬件時鐘平均偏差(毫秒)
        clk_wander – 硬件時鐘偏移(PPM – 百分之一)

Jitter (也叫 timing jitter) 表示短期變化大於10HZ 的頻率, wander 表示長期變化大於10HZ 的頻率 (Stability 表示系統的頻率隨時間的變化,和 aging, drift, trends 等是同義詞)
操作要點(續)

NTP 軟件維護一系列連續更新的頻率變化的校正值。對於設置正確的穩定系統,在非擁塞的網絡中,現代硬件的 NTP 時鐘同步通常與 UTC 標准時間相差在毫秒內。(在千兆 LAN 網絡中可以達到何種精度?)

對於 UTC 時間,閏秒 leap second 可以每兩年插入一次用於同步地球自傳的變化。注意本地時間為夏令時時時間會有一小時的變化。在重同步之前客戶端設備會使用獨立的 UTC 時間,除非客戶端使用了偏移校准。
閏秒發生時會怎樣

    閏秒發生時,會對當天時間增加或減少一秒。閏秒的調整在 UTC 時間當天的最後一秒。如果增加一秒,UTC 時間會出現 23:59:60。即 23:59:59 到 0:00:00 之間實際上需要 2 秒鐘。如果減少一秒,時間會從 23:59:58 跳至 0:00:00 。另見 The Kernel Discipline.

Copyright © Linux教程網 All Rights Reserved