【发布时间】:2015-11-20 08:14:17
【问题描述】:
我已经基于 Raspberry Pi 构建了自己的数字标牌解决方案。基本上所有的 Pi 都分散在中西部的一个城市(目前),他们要求每小时从恰好位于达拉斯的 VPS 更新。 Pi 的实际显示是通过启动时打开的 chromium 中的 webapp 完成的,并使用 javascript 以定义的时间间隔循环浏览内容。
例如,假设其中两个显示器位于同一位置,每个显示器每 4 秒更改一次屏幕上的图像。并假设从 15:00 开始的一小时内,服务器会为它们提供相同的内容列表以循环浏览。当 15:00 左右滚动时,都显示内容项 A,等待 4 秒,显示内容项 B 等,然后再回到 A。
由于树莓派没有实时时钟芯片,两者都将通过 NTP 获取所有时间信息。 ntp.conf 告诉我:
“pool.ntp.org 映射到大约 1000 个低层 NTP 服务器。您的服务器每次启动时都会选择不同的集合。”
这几乎在所有时间都运行良好,因为这两个屏幕看起来完全同步,同时切换到相同的东西,但我时不时地发现它们有一段时间不同步。
我的理论是,由于他们从池中选择不同的 NTP 服务器(可能其中一些服务器距离很远等),因此他们获得的时间更新不同,足以让人认为是 15:00:005 和其他人认为是 15:00:00。
终于解决了这个问题(抱歉),将我的达拉斯服务器设置为我所有分散的 Pi 的唯一 NTP 服务器是否值得?即使达拉斯服务器有几秒钟的错误,至少它们都会同步,忽略一个事实,即一个 Pi 的数据可能与另一个 Pi 的数据采用不同的路由到达拉斯,因此使时间更新稍微不正确。澄清一下,我不在乎 Pi 是否认为现在是 15:00:005 而实际上是 15:00:00,我只是希望他们都认为是 15:00:005。
也许是我太担心了,或者低估了 3-4 个低层 NTP 服务器的准确性,即使它们距离很远。认为这至少是一个有趣的问题。提前致谢!
【问题讨论】:
-
物有所值 - 因为 Pi 之间的时间相差二十分之一秒,您需要花费多少 $$$? 0美元?不,这不值得。但是您至少应该将它们更改为使用 us.pool.ntp.org 以保持美国唯一的互联网流量。
-
这不花我一分钱,我的意思是物有所值,因为它可以获得跨设备的同步精度。当我看到它们稍微偏离时,这让我很恼火。当然,这并不常见,但我想我很容易被激怒。是的,我应该这样做,谢谢你的建议。
-
我不明白你的问题。就用同一个池子?!
-
我将“pool.ntp.org 映射到大约 1000 个低层 NTP 服务器。您的服务器每次启动时都会选择不同的集合。”在 ntp.conf 中表示每个 pi 从不同位置的四个不同服务器获取信息,造成时间差异导致我的显示不同步。
-
并非所有 pi 始终获得相同的 4 个池服务器。根据 DNS 缓存,它们可能具有不同的服务器。无论如何,所有池服务器都非常接近 UTC,并且 Pis 上的 ntpd 将调整时间。我很难相信任何视觉上明显的同步问题都是 ntpd 的时间同步算法的结果。
标签: raspberry-pi raspberry-pi2 ntp