Linux时间同步服务Chronyd同步时间工作机制探讨

系统 Linux
rtcsync 参数用于启用或禁用将系统时间写入实时时钟(RTC, Real-Time Clock)的功能。实时时钟是硬件时钟,通常在系统关机后仍然保持时间。

我之前由于测试了SSL证书过期如何延期,我把服务器的时间往后调了一年。事后我没有把服务器的时间调整回去,服务器上安装了chronyd服务,我原以为时间会在不久之后修正回去。然而直到我发现Prometheus无法工作才知晓,时间并没有及时修正。

我检查了chronyd的服务状态是正常运行,配置也没有问题,配置是:

# cat /etc/chrony.conf |egrep -v '^$|#'
server 0.centos.pool.ntp.org iburst
server 1.centos.pool.ntp.org iburst
server 2.centos.pool.ntp.org iburst
server 3.centos.pool.ntp.org iburst
driftfile /var/lib/chrony/drift
makestep 1.0 3
rtcsync
logdir /var/log/chrony

其中 makestep 参数用于控制在启动时或手动强制同步时的最大步长。具体来说,它有两个子参数:

  1. 第一个参数:最大步长(以秒为单位)。如果系统时间与NTP时间的偏差超过这个值,chronyd 会进行一步调整。
  2. 第二个参数:最大步长的允许次数。如果在一定时间内多次需要进行大步调整,chronyd 会限制调整次数。

rtcsync 参数用于启用或禁用将系统时间写入实时时钟(RTC, Real-Time Clock)的功能。实时时钟是硬件时钟,通常在系统关机后仍然保持时间。

那么为什么时间没有及时的修正呢?我只有在手动重启chronyd服务之后,时间才正确修正了呢?

原来chronyd不是一下子就修正时间的,它是逐步调整时间的,具体请查看如下截图,chronyc tracking 检查每隔一段时间的时间差是越来越小的。

图片图片

其实我们也可以手动强制 chronyd 进行时间同步,而不需要重启服务。

chronyc makestep

这个命令会强制chronyd立即调整系统时间,而不是逐步调整。

图片图片

所以假如我们在服务器上时间相差太大,建议直接执行下 chronyc makestep,另外测试好需要及时恢复环境,或者临时新建一个测试服务器处理。

责任编辑:武晓燕 来源: 运维笔谈
相关推荐

2017-11-20 09:00:34

Linux服务器时间同步

2009-02-13 11:06:00

时间同步服务器服务器

2022-01-27 08:53:31

LinuxNTP同步

2015-09-16 13:19:46

javascript服务器

2023-03-17 08:50:00

服务器时钟服务数据库

2010-01-21 11:27:30

linux多线程机制线程同步

2010-03-15 16:31:34

Java多线程

2012-05-17 08:43:26

Windows 7Linux

2017-12-04 11:19:01

Linux运维同步网络时间

2010-08-06 14:46:51

思科路由器NTP服务器配置

2010-04-02 09:26:53

CentOS系统

2019-08-13 16:10:38

UbuntuLinux时间同步

2024-07-05 08:32:36

2018-01-18 10:10:10

LinuxWindows双启动

2010-09-02 10:50:17

时间同步服务器

2024-06-28 08:45:58

2010-09-27 16:32:46

SQL Server日

2010-08-20 10:29:40

NTP

2016-09-30 08:56:45

Windows 10间隔时间

2017-01-09 09:20:07

Ubuntu NTP同步
点赞
收藏

51CTO技术栈公众号