同步时间,为什么我选 Chrony 而不是 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,如果你的系统没有安装,可以用下面命令进行安装
安装完毕后,使用下面命令来查看运行状态

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

同步时间,为什么我选 Chrony 而不是 NTP ?的更多相关文章
- Linux系列(40) - 自动同步时间chrony
前言 Centos8开始取消了ntp同步时间,改为chrony同步 chrony工具安装 yum -y install chrony 修改配置文件 将配置文件中的同步服务器修改为国内的时间服务器(推荐 ...
- linux用rdate命令实现同步时间
用rdate命令实现同步时间 前两天说到用ntp时间服务器和ntpdate命令同步时间,今天简单记录下用rdate同步时间 http://blog.csdn.net/wyzxg/archive/201 ...
- Linux自动同步时间
一.安装时间同步工具 yum -y install ntp 二.同步时间 1.修改时区 cp -y /usr/share/zoneinfo/Asia/Shanghai /etc/localtime v ...
- centos修改时区,同步时间
查看当前系统时区 ls -la /etc/localtime 查看支持的时区 timedatectl list-timezones # 查看所有时区 timedatectl list-timezone ...
- Linux自动同步时间的方法
介绍两种同步linux系统的时间方法: (1) 开启ntpd服务,即配置ntp服务器实现时间同步. (2) 利用ntp客户端程序,即ntpdate同步时间. 注意:因为ntp服务器本来就会与上层时间服 ...
- CentOS7安装chrony替代ntp同步时间
Chrony是一个开源的自由软件,它能保持系统时钟与时钟服务器(NTP)同步,让时间保持精确.它由两个程序组成:chronyd和chronyc:chronyd是一个后台运行的守护进程,用于调整内核中运 ...
- ntp-redhat 同步时间配置
1. 选作一个机器作为ntp 服务端,例如 ip 为192.168.0.1 1)安装 ntp服务 yum install ntp 2) 修改ntp.conf 文件 vi /etc/ntp.conf 注 ...
- 转载:linux同步时间信息
Linux - CentOS7上的时间同步 1. 时区的概念 1.1 时区简介 地球是自西向东自转,东边比西边先看到太阳,东边的时间也比西边的早.东边时刻与西边时刻的差值不仅要以时计,而且还要以分和秒 ...
- Centos7部署ntp服务器同步时间以及直接将本地时间同步为北京时间
一.查看配置 查看时区列表: timedatectl list-timezones|grep Asia 查看当前时间: date 查看当前设置: [root@localhost ~]# timedat ...
- 同步时间linux
针对对时间要求精确度高的服务器 1.安装时间服务器yum install ntp 2.同步时间ntpdate time.nist.gov 3.设置计划任务每隔10分钟同步一次 */10 * * * * ...
随机推荐
- 毕业论文精选:基于Qt的高考志愿系统填报查询的设计与实现
基于Qt的高考志愿系统填报查询的设计与实现 摘 要 在当今社会教育的迅速发展下,高考人数的规模和增长速度也是空前的.高考已经变成了家长和社会高度关注的事情,但是高考只是一个开始,高考结束后的志 ...
- [ABC264F] Monochromatic Path
Problem Statement We have a grid with $H$ rows and $W$ columns. Each square is painted either white ...
- 从零玩转设计模式之建造者模式-jianzaozhemoshi
title: 从零玩转设计模式之建造者模式 date: 2022-12-08 18:15:30.898 updated: 2022-12-23 15:35:58.428 url: https://ww ...
- STM32CubeMX教程1 工程建立
1.准备材料 开发板(STM32F407G-DISC1) ST-LINK/V2驱动 STM32CubeMX软件(Version 6.10.0) keil µVision5 IDE(MDK-Arm) 2 ...
- Windows Server 2012 R2 远程桌面服务部署指南
著作权归作者所有:来自51CTO博客作者mabofeng的原创作品,请联系作者获取转载授权,否则将追究法律责任 01-Windows Server 2012 R2 远程桌面服务部署指南文章来源:htt ...
- k8s卷管理-1
目录 卷管理-1 1. 本地存储 1.1 emptyDir 1.2 hostPath 网络存储 搭建NFS服务器 使用NFS网络存储 搭建iSCSI服务器 使用iSCSI网络存储 卷管理-1 我们之前 ...
- 一些JavaSE学习过程中的思路整理(三)(主观性强,持续更新中...)
目录 一些JavaSE学习过程中的思路整理(三)(主观性强,持续更新中...) Java线程同步的几种常见情况分析 由简单到复杂的几种单例模式写法 死锁的实现与破解 使用lambda表达式化简代码 J ...
- 使用鼠标在图片上拖拽矩形框vue
<template> <div> <img class="no-drag" src="https://dashanbook.oss-cn-s ...
- 自定义Graph Component:1.1-JiebaTokenizer具体实现
JiebaTokenizer类继承自Tokenizer类,而Tokenizer类又继承自GraphComponent类,GraphComponent类继承自ABC类(抽象基类).本文使用<使 ...
- 保姆级教程:带你体验华为云测试计划CodeArts TestPlan
摘要:华为云测试计划(CodeArts TestPlan)是面向软件开发者提供的一站式云端测试平台,覆盖测试管理.接口测试,融入DevOps敏捷测试理念,帮助您高效管理测试活动,保障产品高质量交付. ...