欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  科技

详细解读Linux系统中ntpq命令的使用

程序员文章站 2023-12-30 11:54:16
这篇文章主要介绍了Linux系统中ntpq命令的使用,ntpq命令可以用来处理各种时间之间的同步和换算,非常强大,需要的朋友可以参考下... 15-06-14...

命令 "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.

上一篇:

下一篇: