可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的

目录

  • 初识 chrony
  • chronyc & chronyd
  • chrony 配置
  • Why chrony and not NTP

初识 chrony

chrony 是网络时间协议(Network Time Protocol )的通用实现

它不但可以提供保持系统时间与 NTP 时钟服务器同步的服务,还能作为 NTP 服务器对其他服务器提供时间同步服务

chrony 特点:

任何情况下都能稳定良好运行(例如不稳定的网络中、不稳定的系统中或者虚拟机环境中)
精度高(精度通常以几十微秒为单位)
开源(白嫖多香)

官方文档:https://chrony.tuxfamily.org/index.html

chronyc & chronyd

chrony 有两个核心组件:

chronyd
守护进程,主要用于调整内核中运行的系统时间和时间服务器同步
chronyc
命令行界面程序,让用户能够对 chronyd 的性能进行监控以及改变各种参数

安装

从 Centos 7.x 开始的最小发行版中都已经预装并开启了 Chrony,如果你的系统没有安装,可以用下面命令进行安装

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第1张图片

安装完毕后,使用下面命令来查看运行状态

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第2张图片

chronyc 命令

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第3张图片

  • 常见 OPTION

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第4张图片

  • 常见 COMMAND

显示系统时钟性能的参数

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第5张图片
显示时间同步源

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第6张图片
可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第7张图片
查看当前系统的时间同步源状态信息(例如漂移率和偏移估算过程)

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第8张图片
查看时间同步源的状态

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第9张图片

chrony 配置

配置文件路径:/etc/chrony.conf

一些常用的配置项

server

假设你的 NTP 服务器名字为:haha.example.net、hehe.example.net

那么在配置文件里内容如下:

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第10张图片

iburst:在头四次 NTP 请求以 2s 或者更短的间隔;minpoll x 指定最小的轮询间隔,默认值是 6,代表 64s;maxpoll x 默认值是 9,代表 512s

prefer,表示优先级最高,客户端会优先与添加了 prefer 字段的 时间同步源进行时间同步

driftfile

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第11张图片

chrony 会根据实际时间来修正系统时间,而这个修正的值(即系统时钟相对于实时时间获得或失去时间的速率)会存放在一个指定文件里面,由 driftfile指定文件路径

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第12张图片
rtcsync

rtcsync 表示启动内核实时时钟同步(RTC)

在 Linux 系统中,内核每 11 分钟执行一次 RTC 拷贝来同步时钟

makestep

通常情况下,chrony 会通过减缓或加快时钟来逐渐调整系统时间

但是 chrony 首次启动的时候,发现系统时间与实际时间偏差很大,以至于需要花费很长时间来纠正系统时间

而 makestep 字段可以使 chrony 跳跃式调整系统时间

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第13张图片
表示在头三次校正时间的时候,如果发现时间偏差超过 1.0 s,就跳跃式校正,而非逐渐式

logdir

指定 chrony 日志文件路径

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第14张图片

Why chrony and not NTP

我们知道,chrony 和 ntpd 都是网络时间协议的两种不同实现方式

在简单介绍完 chrony 的相关内容之后,我们回到文章题目:为什么用 chrony 而不是 NTP?

首先看下它们时间同步的准确性

以下是 chrony 官网中 chronyd 和 ntpd 的时间同步准确性详细对比

其他维度对比详情请到官网上查看

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第15张图片
可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第16张图片
可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第17张图片
可以看到,chrony 具有更精确的时间准确性,精度更高

除此之外,我们来看下其他比较

可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第18张图片
可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作 而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟 总结: chrony 具有更精确的_第19张图片
可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作

而且 由于有更小的时间轮询间隔,chrony 可以更快的同步时钟

总结:

  • chrony 具有更精确的时间准确性,精度更高,同步时间的速度更快,从而最大程度的减少时间和频率误差
  • chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作,因此 chrony 具备间歇性网络连接的系统仍然可以快速同步时钟
  • chrony 对时间的校准是连续的,通过从而最大程度的减少时间和频率误差;而 ntp 需要搭配 crontab 来定时调整时间,会出现间断
  • chrony 能够快速适应时钟速率的突然变化(例如,晶体振荡器的温度变化)。而 NTP可能需要很长时间才能再次稳定下来
  • chrony 能够在网络拥堵的情况很好地执行
  • chrony 占更小的内存,更加的轻量,而且只在必要时唤醒 CPU

你可能感兴趣的:(技术,linux,服务器,网络)