[ntp]查看ntp服務器的連接情況


轉自:http://www.cnblogs.com/liuyou/archive/2012/07/29/2614338.html

  • 命令和工具

# watch ntpq -p

# ntpq -p, /etc/init.d/ntp status, 

# ntpstat

# ntpdate, nptdate -d ntp_server_domain

  •  ntp和ntpdate區別一

使用ntpd服務,要好於ntpdate加cron的組合。因為,ntpdate同步時間,會造成時間的跳躍,對一些依賴時間的程序和服務會造成影響。比 如sleep,timer等。而且,ntpd服務可以在修正時間的同時,修正cpu tick。理想的做法為,在開機的時候,使用ntpdate強制同步時間,在其他時候使用ntpd服務來同步時間。

    要注意的是,ntpd 有一個自我保護設置: 如果本機與上源時間相差太大, ntpd 不運行. 所以新設置的時間服務器一定要先 ntpdate 從上源取得時間初值, 然后啟動 ntpd服務。ntpd服務 運行后, 先是每64秒與上源服務器同步一次, 根據每次同步時測得的誤差值經復雜計算逐步調整自己的時間, 隨着誤差減小, 逐步增加同步的間隔. 每次跳動, 都會重復這個調整的過程.

  • ntp和ntpdate區別二
ntpd
  • ntp是一個時間服務。
  • 采用柔性時間調整策略,讓時間的變化和調整盡量減少對業務的影響。
  • 不盲目相信遠端時鍾,服務器時間和遠端時鍾超過恐慌閾值(默認1000秒),ntp甚至會停止時間同步。
  • ntpd自己會思考。它相信本地時間可能不對,但是不會忽快忽慢甚至停滯。ntpd通過多次收發包選擇權威穩定的時間源,算出雙方間的網絡延遲,然后才會采信新的遠端時鍾進行時間同步。
  • NTPD 在和時間服務器的同步過程中,會把BIOS振盪時鍾和遠程時間服務的偏移量記錄下來,這樣即使網絡有問題,本機仍然能維持一個相當精確的走時。
ntpdate
  • ntpdate是一個時間同步命令,通常采用crond+ntpdate方式同步時間。
  • ntpdate盲目信任遠端時鍾,如果遠端時鍾錯誤,ntpdate永遠相信遠端時鍾是正確的,可能造成服務器時鍾停滯,甚至回逆。
  • ntpdate簡單粗暴,無腦不會思考。采用野蠻式(brute force,國外資料中這個詞用的很好)、躍進式調整服務器時間。

NTP----------------------------------------------------------------

現在我們已經啟動了NTP的服務,但是我們的系統時間到底和服務器同步了沒有呢? 為此NTP提供了一個很好的查看工具: ntpq (NTP query)
我建議大家在打開NTP服務器后就可以運行ntpq命令來監測服務器的運行.這里我們可以使用watch命令來查看一段時間內服務器各項數值的變化

# watch ntpq -p
Every 2.0s: ntpq -p                                  Sat Jul 7 00:41:45 2007
     remote           refid      st t when poll reach   delay   offset jitter
==============================================================================
+193.60.199.75   193.62.22.98     2 u   52   64 377    8.578   10.203 289.032
*mozart.musicbox 192.5.41.41      2 u   54   64 377   19.301 -60.218 292.411

現在我就來解釋一下其中的含義

  • remote: 它指的就是本地機器所連接的遠程NTP服務器
  • refid: 它指的是給遠程服務器(e.g. 193.60.199.75)提供時間同步的服務器
  • st: 遠程服務器的級別. 由於NTP是層型結構,有頂端的服務器,多層的Relay Server再到客戶端. 所以服務器從高到低級別可以設定為1-16. 為了減緩負荷和網絡堵塞,原則上應該避免直接連接到級別為1的服務器的.
  • t: 這個.....我也不知道啥意思^_^
  • when: 我個人把它理解為一個計時器用來告訴我們還有多久本地機器就需要和遠程服務器進行一次時間同步
  • poll: 本地機和遠程服務器多少時間進行一次同步(單位為秒). 在一開始運行NTP的時候這個poll值會比較小,那樣和服務器同步的頻率也就增加了,可以盡快調整到正確的時間范圍.之后poll值會逐漸增大,同步的頻率也就會相應減小
  • reach: 這是一個八進制值,用來測試能否和服務器連接.每成功連接一次它的值就會增加
  • delay: 從本地機發送同步要求到服務器的round trip time
  • offset: 這是個最關鍵的值, 它告訴了我們本地機和服務器之間的時間差別. offset越接近於0,我們就和服務器的時間越接近
  • jitter: 這是一個用來做統計的值. 它統計了在特定個連續的連接數里offset的分布情況. 簡單地說這個數值的絕對值越小我們和服務器的時間就越精確

那么大家細心的話就會發現兩個問題: 第一我們連接的是0.uk.pool.ntp.org為什么和remote server不一樣? 第二那個最前面的+和*都是什么意思呢?

  • 第一個問題不難理解,因為NTP提供給我們的是一個cluster server所以每次連接的得到的服務器都有可能是不一樣.同樣這也告訴我們了在指定NTP Server的時候應該使用hostname而不是IP
  • 第二個問題和第一個相關,既然有這么多的服務器就是為了在發生問題的時候其他的服務器還可以正常地給我們提供服務.那么如何知道這些服務器的狀態呢? 這就是第一個記號會告訴我們的信息

*
它告訴我們遠端的服務器已經被確認為我們的主NTP Server,我們系統的時間將由這台機器所提供
+
它將作為輔助的NTP Server和帶有*號的服務器一起為我們提供同步服務. 當*號服務器不可用時它就可以接管
-
遠程服務器被clustering algorithm認為是不合格的NTP Server
x
遠程服務器不可用
了解這些之后我們就可以實時監測我們系統的時間同步狀況了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM