当前位置: 首页 > article >正文

【银河麒麟】时间同步工具chrony与ntp对比

了解更多银河麒麟操作系统全新产品,请点击访问

麒麟软件产品专区:https://product.kylinos.cn

开发者专区:https://developer.kylinos.cn

文档中心:https://documentkylinos.cn


Chrony介绍

Chrony 是一个用于时间同步的软件。它可以将系统时钟与NTP服务器、参考时钟(如GPS接收器)以及使用手表和键盘的手动输入同步。它还可以作为NTPv4(RFC 5905)服务器和对等端操作,为网络中的其他计算机提供时间服务,精度通常以几十微秒为单位。

它可以在间歇性网络连接、严重拥塞的网络、不断变化的温度(普通计算机时钟对温度敏感)以及不连续运行或在虚拟机上运行的系统等各种条件下良好运行。

两个主要程序:chronyd和chronyc

chronyd:后台运行的守护进程,用于调整内核中运行的系统时钟和时钟服务器同步。它确定计算机增减时间的比率,并对此进行补偿

chronyc:命令行用户工具,用于监控性能并进行多样化的配置。它可以在chronyd实例控制的计算机上工作,也可在一台不同的远程计算机上工作。

NTP/Chrony功能对比

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

在各种时钟和网络条件下将chrony和ntp的精度比较结果如下:

图1 网络和时钟均稳定的情况

图2 网络稳定但始终不稳定

图3 间歇性网络连接

通过图1、图2、图3三种形势下的对比可以看到,chrony 具有更精确的时间准确性,精度更高。

图4 间歇性校准时间

图5 最小间歇时间

如图4、图5所示对比时间校准方式和最小间歇时间,可以确认chrony 可以随机间歇性校准时间,而NTP需要定期轮询才能正常工作,而且chrony有更小的时间轮询间隔,可以更快的同步时钟。

对比总结

chrony的优势

chrony可以在对时间参考的访问是间歇性的环境中发挥作用。ntp需要定期轮询引用才能正常工作。

chrony通常可以更快、更准确地同步时钟。

chrony快速适应时钟速率的突然变化(例如,由于晶体振荡器的温度变化)。ntp可能需要很长时间才能重新稳定下来。

chrony即使在网络拥塞时间较长的情况下也能表现良好。

默认配置中的chrony从不占用时间来扰乱其他正在运行的程序。ntp也可以配置为从不计时,但在这种情况下,它必须使用不同的方式来调整时钟(守护进程循环而不是内核规程),这可能会对时钟的准确性产生负面影响。

chrony可以在更大的范围内调整时钟的速率,这使得它即使在时钟损坏或不稳定的机器上(例如,在一些虚拟机中)也可以运行。

chrony更小,使用更少的内存,并且只有在必要的时候才会唤醒CPU,这更利于节能。

chrony可以,ntp做不到的

chrony支持网络时间安全(NTS)身份验证机制。

chrony支持Linux上的硬件时间戳,这允许在本地网络中实现极其稳定和准确的同步。

chrony为隔离网络提供支持,无论唯一的时间校正方法是手动输入(例如管理员查看时钟)。chrony可以查看在不同更新时校正的错误,以计算出计算机获得或丢失时间的速率,并使用此估计值随后调整计算机时钟。

chrony支持计算实时时钟的增益或损耗率,即保持计算机关闭时间的时钟。它可以在系统启动时使用这些数据,根据实时时钟的校正版本设置系统时间。

​​​​​​​ntp可以,chrony做不到的

ntp支持RFC 5905中的所有操作模式,包括广播、多播和manycast服务器/客户端。然而,与普通的服务器/客户端模式相比,广播和多播模式固有地不那么准确和不那么安全(即使有认证),通常该避免。

ntp支持自动密钥协议(RFC 5906),以使用公钥密码对服务器进行身份验证。但该协议已被证明是不安全的,并且已被NTS废除(RFC 8915)。

ntp包括用于各种硬件参考时钟的大量驱动程序。chrony需要其他程序(例如gpsd或ntp refclock)通过SHM或SOCK接口提供参考时间。

后续计划及建议

使用chronyd服务平滑同步时间的方式要优于crontab + ntpdate,因为ntpdate同步时间会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响,建议使用chrony服务来用于时间同步服务。

但是对于生产环境已经长期稳定是用ntp服务来进行时间同步的环境,建议保留ntp环境,不建议强制将ntp更换为chrony。


http://www.kler.cn/a/392071.html

相关文章:

  • 树形dp总结
  • 【初阶数据结构与算法】链表刷题之移除链表元素、反转链表、找中间节点、合并有序链表、链表的回文结构
  • 使用Matlab建立随机森林
  • JavaScript高级程序设计基础(四)
  • SOLIDWORKS代理商鑫辰信息科技
  • 实时渲染技术如何助力3D虚拟展厅?
  • golang分布式缓存项目 Day2 单机并发缓存
  • labview拆解日期字符串
  • 【大数据学习 | HBASE高级】mr操作hbase
  • MySQL技巧之跨服务器数据查询:基础篇-更新语句如何写
  • 音视频入门基础:MPEG2-TS专题(3)——TS Header简介
  • 从零开始使用YOLOv11——Yolo检测detect数据集自建格式转换为模型训练格式:20w+图片1w+类别代码测试成功
  • PointMamba: A Simple State Space Model for Point Cloud Analysis——点云论文阅读(10)
  • 边缘计算与推理算力:智能时代的加速引擎
  • 开源大模型推理引擎现状及常见推理优化方法总结
  • ubontu安装anaconda
  • 简单理解回调函数
  • Jenkins配置步骤
  • Spring学习笔记_30——事务接口PlatformTransactionManager
  • 汽车牌照识别系统的设计与仿真(论文+源码)
  • Vue 组件间传值指南:Vue 组件通信的七种方法
  • 软考系统架构设计师论文:论多源数据集成及应用
  • 企业“3D官网”主要有哪些功能?
  • labview实现定时器的功能
  • ❤React-React 组件基础(类组件)
  • Redhat7.9 安装 KingbaseES 金仓数据库 V9单机版(命令行安装)