同步时间,为什么我选 Chrony 而不是 NTP ?

同步,时间,为什么,chrony,不是,ntp · 浏览次数 : 261

小编点评

**为什么用 chrony 而不是 NTP?** 由于 chrony 的更精确的时间准确性,精度更高,同步时间的速度更快,从而最大程度的减少时间和频率误差。

正文

初识 chrony

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

 

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

 

chrony 特点:

  1. 任何情况下都能稳定良好运行(例如不稳定的网络中、不稳定的系统中或者虚拟机环境中)

  2. 精度高(精度通常以几十微秒为单位)

  3. 开源(白嫖多香

 

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

 

chronyc & chronyd

chrony 有两个核心组件:

  • chronyd

    • 守护进程,主要用于调整内核中运行的系统时间和时间服务器同步

  • chronyc

    • 命令行界面程序,让用户能够对 chronyd 的性能进行监控以及改变各种参数

 

安装

 

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

 

 

 

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

 

 

 

chronyc 命令

 

 

  • 常见 OPTION

 

  • 常见 COMMAND

 

显示系统时钟性能的参数

 

 

 

 显示时间同步源

 

 

 

 

 查看当前系统的时间同步源状态信息(例如漂移率和偏移估算过程)

 

 

 查看时间同步源的状态

 

 

 

 

chrony 配置

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

 

一些常用的配置项

 

server

 

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

 

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

 

 

 

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

 

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

 

driftfile

 

 

 

 

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

 

 

 

 

 

rtcsync

 

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

 

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

 

makestep

 

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

 

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

 

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

 

 

 

表示在头三次校正时间的时候,如果发现时间偏差超过 1.0 s,就跳跃式校正,而非逐渐式

 

logdir

 

指定 chrony 日志文件路径

 

 

 

 

Why chrony and not NTP

 

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

 

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

 

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

 

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

 

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

 

 

 

 

 

 

 

 

 

 

可以看到,chrony 具有更精确的时间准确性,精度更高

 

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

 

 

 

 可以看到,chrony 可以随机间歇性校准时间,而 NTP 需要定期轮询才能正常工作

 

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

 

总结:

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

 

 

与同步时间,为什么我选 Chrony 而不是 NTP ?相似的内容:

同步时间,为什么我选 Chrony 而不是 NTP ?

初识 chrony chrony 是网络时间协议(Network Time Protocol )的通用实现 它不但可以提供保持系统时间与 NTP 时钟服务器同步的服务,还能作为 NTP 服务器对其他服务器提供时间同步服务 chrony 特点: 任何情况下都能稳定良好运行(例如不稳定的网络中、不稳定的

阿里400+天,我为什么离开阿里

阿里还是挺不错了,感谢公司,感谢同事们! 零丶前言 今天是我在阿里的lastday,明天我将回成都(此处嘴角弯,我爱成都),端午后入职另外一家互联网大厂。 在去年3月份的时候,我从成都的某家金融科技银行跳槽到杭州阿里巴巴淘天集团,这篇《跳槽!阿里工作100+天,菜鸡职业生涯的一点记录》记录了我跳槽动

手把手教你实现跳表!

发布于我的博客,也许同步更新于博客园 引入 跳表(跳跃表)能够维护一个数的集合(作用类似普通平衡树),查找时间复杂度为 \(\log n\),与平衡树一样基于链表结构。由于不需要平衡树那么多旋转什么的,所以效率比较高,一般认为性能能打红黑树。除此以外,链表的特性使它能够以线性时间遍历某个子段。Red

异构数据源同步之数据同步 → datax 再改造,开始触及源码

开心一刻 其实追女生,没那么复杂 只要你花心思,花时间,陪她聊天,带她吃好吃的,耍好玩的,买好看的 慢慢你就会发现什么叫做 打水漂 不说了,我要去陪她看电影了 前情回顾 异构数据源同步之数据同步 → datax 改造,有点意思 主要讲到了2点 去 Python,直接在命令行用 java 命令来启动

诞生记(一)——上线一个小程序最低要花多少钱?

我是一个很懒的人,很少写博客。为什么?因为技术发展太快了,刚学习记录下来过段时间来看看,发现全都过时了。太浪费感情了。 曾经我也是一个软粉,一个.Net开发者,同学都入坑Android、Java踩着时代的红利拿高薪的时候。我却始终爱着微软。一直到微软彻底抛弃Windows Phone10的时候我才死

Ceph 架构以及部署

目录Ceph架构存储类型为什么用到Ceph?1. NFS2. MooseFSMooseFS瓶颈3. GlusterFS4. CephCeph的组件Ceph部署前期准备1.1 修改主机名1.2 关闭防火墙以及selinux1.3 配置hosts1.4 配置时间同步2. 安装cephadm2.1 安装g

#PowerBi Superchange PowerBi 开篇(1)

本书由B站京西漫步老师推荐,并提供了相应的学习资源,有同感兴趣的朋友,可以加我好友免费分享资源。 本书主要以总结笔记,原文+译文+部分案例实操为主。 预计更新时间为23年6月-23年7月。 本系列笔记背景,笔者在经过一年左右的陆陆续续的学习和实践中,对Powerbi有了初步的应用和学习,但是零散的学

PHP 真的不行了?透过 PHP 的前世今生看真相

大家好,我是码农先森。 1994年我出生在湖南的农村,就在同年加拿大的拉斯姆斯·勒多夫创造了 PHP,这时的 PHP 还只是用 Perl 编写的 CGI 脚本。或许是时间的巧合 PHP 变成了我后半生谋生的手段,当时拉斯姆斯·勒多夫写这些脚本的目的,只是为了统计自己网站的访问者。就是这样一个简单的目

快学会这个技能-.NET API拦截技法

大家好,我是沙漠尽头的狼。 本文先抛出以下问题,请在文中寻找答案,可在评论区回答: 什么是API拦截? 一个方法被很多地方调用,怎么在不修改这个方法源码情况下,记录这个方法调用的前后时间? 同2,不修改源码的情况下,怎么对方法的参数进行校正(篡改)? 同3,不修改源码的情况下,怎么对方法的返回值进行

编译器优化记录(控制流图,支配树)

编译器优化记录(1) 0. 为啥要写这个记录 我感觉自己平时整理自己想法的机会实在是太少了。即便是对于自己花了很多时间想、或是花了很多时间学的东西,同样如此。 写编译器优化的阶段学了很多方法,也看到了很多人类智慧,我希望能从头梳理一下认识它们的过程,来更好地体悟。 我身边有几位好朋友一直保持着记录(