V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eric13517
V2EX  ›  程序员

电脑上通过 NTP 对时,正常误差是多少?

  •  1
     
  •   eric13517 · 2018-01-20 15:56:41 +08:00 · 15592 次点击
    这是一个创建于 2497 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天在电脑上秒杀抢东西,先在系统里用 Internet 时间同步,但发现同步后,比网页上显示的服务器时间慢,再拿手机对比,电脑时间比手机的时间慢大约 2-3 秒,这个误差好像有点大。
    手机是通过移动网络同步时钟的,应该比通过 NTP 同步要准确一点吧。

    大家在同步电脑时间时,用的是哪个 NTP 服务器,怀疑是系统自带的对时服务器访问延时太长导致的。
    34 条回复    2022-09-27 10:42:03 +08:00
    likuku
        1
    likuku  
       2018-01-20 16:10:50 +08:00
    多年前就注意到国内电视台和电台显示 /报时 的时钟 似乎都要比 NTP 校准过的时钟慢那么 2-3 秒。

    最近两年没有电视机了,不知道现在如何。
    wizardoz
        2
    wizardoz  
       2018-01-20 16:12:39 +08:00
    ntp 服务器的上游服务器越多,同步的时间越准确。如果只有一个上游服务器,好像是很难精确的。
    trepwq
        3
    trepwq  
       2018-01-20 16:12:42 +08:00 via iPhone
    @likuku 电视台直播规定必须延迟几秒
    likuku
        4
    likuku  
       2018-01-20 16:15:16 +08:00   ❤️ 1
    个人习惯用 time.apple.comtime.windows.com

    偷懒直接用 pool.ntp.org 也可以

    下面是树莓派(raspbian)默认用的:
    pool 0.debian.pool.ntp.org iburst
    pool 1.debian.pool.ntp.org iburst
    pool 2.debian.pool.ntp.org iburst
    pool 3.debian.pool.ntp.org iburst

    ntpq -p 就知道延时和你当前优先用的那个:
    * 就是当前用的,
    带 GPS 的就是 1 级时钟源,民用里是最准的,但不一定是离你最近的

    ntpq -p
    remote refid st t when poll reach delay offset jitter
    ==============================================================================
    0.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.002
    1.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.002
    2.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.002
    3.debian.pool.n .POOL. 16 p - 64 0 0.000 0.000 0.002
    *news.neu.edu.cn 202.118.1.47 2 u 679 1024 377 46.807 -4.652 2.106
    -212.47.249.141 5.103.128.88 3 u 54 1024 377 258.477 19.832 7.363
    -ntp3.flashdance 194.58.202.148 2 u 470 1024 377 283.260 17.744 9.204
    +time4.aliyun.co 10.137.38.86 2 u 516 1024 377 37.393 -2.837 1.488
    +85.199.214.100 .GPS. 1 u 49 64 177 263.694 10.145 5.001
    -ntp3.itcomplian 10.6.30.8 6 u 952 1024 235 218.006 -37.512 23.141
    riggzh
        5
    riggzh  
       2018-01-20 16:34:04 +08:00
    手机可以调 GPS 对时,所以比网络对要准
    lolizeppelin
        6
    lolizeppelin  
       2018-01-20 19:37:12 +08:00 via Android
    ntp 精度是 128 毫秒
    realpg
        7
    realpg  
       2018-01-20 22:04:18 +08:00
    android 手机 到窗口之类能直接看到天空的地方,打开 gpstest,等卫星数量够了变绿色,点 time,就是 gps 的高精度时间了
    realpg
        8
    realpg  
       2018-01-20 22:05:18 +08:00   ❤️ 1
    我们机房的 ntp 服务器的时钟源就是 gps,费了好大劲打了 N 个孔下了 N 个管才把 GPS 天线引进机房里
    turan12
        9
    turan12  
       2018-01-20 22:15:43 +08:00
    话说秒杀的服务器的时间可能也不是精确的 GPS 时间。
    lfzyx
        10
    lfzyx  
       2018-01-20 22:20:23 +08:00
    @likuku 不延迟就没法紧急 cut 直播镜头了
    flynaj
        11
    flynaj  
       2018-01-20 22:37:14 +08:00 via Android
    你用的什么操作系统,win7 默认一个星期才同步一次
    billwang
        12
    billwang  
       2018-01-20 22:41:14 +08:00
    @realpg 一般机房都有自己的授时中心,不过服务器都是和北上广的授时中心对时,如果对方无法访问则会通过自己的授时。
    Telegram
        13
    Telegram  
       2018-01-20 22:47:51 +08:00 via iPhone
    你的时间再精确,秒杀服务器的时间不精确也没用啊。

    我记得阿里也有 ntp
    likuku
        15
    likuku  
       2018-01-20 23:52:11 +08:00
    @flynaj
    @Telegram

    so, 很早就有 freebsd 的大牛写文倡议服务器应使用 ntpd 来代替 ntpdate,因为前者是守护进程运行,
    持续不断监视本机 RTC,有偏差就会立即修正,不需要人为照管。
    likuku
        16
    likuku  
       2018-01-20 23:55:50 +08:00
    AsiaBSDCon 上说 OpenBSD 的 sensor framework 的时候的一个观点 - delphij's Chaos : https://blog.delphij.net/2007/03/asiabsdconopenb.html

    "第二,这样做不精确。一旦 ntp 服务器宕机,跟随它的服务器也就会无法同步时间。与此不同,ntpd 不仅能够校准计算机的时间,而且能够校准计算机的时钟。"


    RTC 与 NTP - delphij's Chaos : https://blog.delphij.net/2010/08/rtc-ntp.html
    missdeer
        17
    missdeer  
       2018-01-21 00:21:18 +08:00
    我在公司里一个 Win7,一个 iMac,全都启用系统网络校时。但是! Win7 比我手机慢 2 分钟左右,mac 比手机快 2 分钟左右,也就是说这两台电脑相差 4,5 分钟,手机是准时的!
    AstroProfundis
        18
    AstroProfundis  
       2018-01-21 00:26:02 +08:00
    个人观察,一般通过公网校时(网络正常情况下)大概在 10ms 量级,基本上误差 < 10ms 就算是很稳定的了,多数情况在 100ms 以内,没有特殊需求的话是完全够用的,如果在网络良好的局域网内有时候可以达到 1ms 量级
    查看方法就是上面有提到的 ntpq -p 命令,其中 offset 是误差,jitter 是本机获取到的和源的误差的抖动大小(最近若干次 offset 的均方根),理想情况下应该为 0 当然实际上是达不到的... jitter 大说明客户端到这个源的校时状况不稳定,一般来说是因为网络抖动影响了时间差的计算,暗示使用这个源同步可能不那么可靠
    AstroProfundis
        19
    AstroProfundis  
       2018-01-21 00:29:42 +08:00
    @missdeer 类库叔乃有木有看过这几个设备各自校时使用的源是谁...我猜 win 默认用了巨硬在美帝的 time.windows.com, 水果默认用了在新加坡一带的 asia.time.apple.com, 然后手机可能用的是 xx.pool.ntp.org 然后被解析到了国内或者日本

    然而这样也不可能有分钟级的误差,乃确定对时服务在跑么╮( ̄▽ ̄")╭
    eric13517
        20
    eric13517  
    OP
       2018-01-21 00:53:49 +08:00
    多谢大家,我找了些国内的 ntp 服务器,挑了个 ping 值最小的 ntp6.aliyun.com ,同步后好多了,但目测仍然比手机慢 1s
    左右,和网页版的 http://www.hko.gov.hk/gts/time/clock_uc.html 对比,目测大约慢 0.5s 左右。
    这个误差虽然没有太大影响,但较真的毛病又犯了,感觉 ntp 协议是有网络延时补偿的,似乎不应该有这么大的误差。
    likuku
        21
    likuku  
       2018-01-21 00:56:22 +08:00
    @AstroProfundis 是的,windows 默认用 time_windows_com,但是国内似乎经常连不上,我也曾多次直接用 ntpdate 去主动用它来对时,成功率非常低。

    而 time_apple_com 就非常可靠,办公室里我经手用过的 windows,首先就把它 ntp 时钟源改为 time_apple_com
    likuku
        22
    likuku  
       2018-01-21 01:01:51 +08:00
    @eric13517 ping 数值不能作为首要选择条件,最好能有 GPS/原子钟,它们自身时钟误差最小。

    偷懒就 pool_ntp_org 吧。

    以下供参考:
    30.10. 通过 NTP 进行时钟同步 : https://www.freebsd.org/doc/zh_CN.UTF-8/books/handbook/network-ntp.html
    py2ex
        23
    py2ex  
       2018-01-21 10:20:02 +08:00
    自己用 time.apple.com 同步时间,但是过一段时间误差会越来越大
    riggzh
        24
    riggzh  
       2018-01-21 10:22:38 +08:00
    这时候就体现出电脑带 4G 的优势了,我靠 GPS 对时的
    F0nebula
        25
    F0nebula  
       2018-01-21 12:52:33 +08:00
    @eric13517 #20 https://time.is/ 可以计算误差
    msg7086
        26
    msg7086  
       2018-01-21 14:35:51 +08:00
    顺便一提,现在 Systemd 自带 SNTP 客户端,开箱即用,timedatectl 可查看状态。
    jsthon
        27
    jsthon  
       2018-01-21 14:52:12 +08:00
    http://ntp.org.cn/

    由 @qiuai 维护的 NTP 服务器列表
    billlee
        28
    billlee  
       2018-01-21 14:56:15 +08:00
    我不太相信手机的时间,至少我从没看到它把设错的时间啊调回来过。
    eaglexiang
        29
    eaglexiang  
       2018-01-22 00:51:48 +08:00
    其实我一直不理解这种对时的误差从哪里来。既然知道时延,为何不依照时延 /2 进行自修正?哪怕链路往返时间不相等,误差也是 ms 级,怎么会有 s 级的误差?
    realpg
        30
    realpg  
       2018-01-22 17:11:19 +08:00
    @likuku #21
    windows 的不可靠 apple 的可靠 很大程度上是由于 windows 的客户端太多……
    dalieba
        31
    dalieba  
       2019-03-17 18:17:40 +08:00 via Android
    现在 Windows 自带的 NTP 对时最多精确到秒,如有需要,微软建议用第三方软件,Windows Server 2016 的可以精确到毫秒。
    1265578519
        32
    1265578519  
       2019-11-25 01:33:05 +08:00
    time.apple.com 经常突然误差 300 多秒,不知道什么情况,,
    59973
        33
    59973  
       2022-09-27 09:28:31 +08:00 via Android
    @riggzh 请问一下电脑带 gps 或者“定位”怎么样能抓到数据呢,我是联想笔记本好像是有 gps 的
    riggzh
        34
    riggzh  
       2022-09-27 10:42:03 +08:00
    @59973 #33 有 4G 模块才有 GPS
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   4295 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 05:33 · PVG 13:33 · LAX 21:33 · JFK 00:33
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.