zoukankan      html  css  js  c++  java
  • [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
    远程服务器不可用
    了解这些之后我们就可以实时监测我们系统的时间同步状况了

  • 相关阅读:
    东芝线阵CCD芯片TCD1305DG驱动时序设计
    数字电路中应避免产生不必要的锁存器 Latch
    准双向口、开漏输出、推挽输出结构介绍
    边沿检测电路小结
    数字系统中的亚稳态及其解决办法
    launch edge 和 latch edge 延迟
    基于Verilog的偶数、奇数、半整数分频以及任意分频器设计
    找到了救命的东西 NVIDIA MPS (multi-process service)
    关于多个程序同时launch kernels on the same GPU
    java的System.currentTimeMillis()和System.nanoTime()
  • 原文地址:https://www.cnblogs.com/aaronLinux/p/7699678.html
Copyright © 2011-2022 走看看