1. 时钟偏差产生原因

linux系统有两个时钟:一个是由主板电池驱动的硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。

另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时 钟是要读取RTC时间来进行时间同步

这两个时钟通常会有一些误差,所以长时间可以导致 这两个时钟偏离的比较多,最简单的保持两个时间同步的方法是用软件测出他们之间的误差率,然后用软件进行修正。在每次重新启动系统的时候,系统都会用 hwclock命令对时间进行同步。如果内核时钟在每一个时间中断都快或者慢的话,可以用时钟同步命令进行调整,使得RTC和内核时间走的快慢一 致。同步工具ntp、chrony

对CDH平台的影响

 服务出现时钟偏差报警,长时间会导致部分服务无法正常运行。

2. 如何确认产生了时钟偏差

ntpq

ntpq -pn命令查看一下运行状态

ntpq是ntp服务的程序名,-p表示打印链接信息,-n表示展现ip而不是域名加密

 

serdes tx rx 时钟偏差 时钟偏差如何解决_时钟偏差

 

remote:NTP服务器的名称

*表示目前正在使用的NTP服务器;
+表示已经链接成功,而且能够做为下一个提供时间更新的候选者;
#表示服务正常可是不在使用节点以内
x表示没法链接

refid:NTP服务器使用的上一级NTP服务器

st:NTP服务器的级别。由于NTP是层级结构,有顶端的服务器,多层的Relay Server再到客户端,所以服务器从高到低级别可以设定为1-16。为了减缓负荷和网络堵塞,原则上应该避免直接连接到级别为1的服务器。

when:上一次成功请求之后到现在的秒数。

poll:本机与NTP服务器多少时间进行一次同步(单位为秒)。一开始运行NTP时,poll值小,同步频率高,可以尽快调整到正确的时间范围;之后poll值会逐渐增大,同步的频率也就会相应减小。

reach:这是一个八进制值,用来测试能否和服务器连接,每成功连接一次它的值就会增加

delay:从本机发送同步要求到ntp服务器的round trip time

offset:本机通过NTP时钟同步与所同步时间源的时间偏移量,单位为毫秒(ms)。offset越接近于0,主机和ntp服务器的时间越接近

jitter:这是一个统计值。它统计了在特定个连续的连接数里offset的分布情况,简单地说这个数值的绝对值越小,主机的时间就越精确

3. 如何解决时钟偏差

行命令:

 

ntpdate [IP或域名]即可手动进行时间同步。

在内网架构中,如果设备比较多,则可以使用内置的NTP服务器,如果设备比较少,则可以选择互联网上的NTP服务。常用的NTP服务有阿里云的NTP服务,域名:ntp1.aliyun.com
使用命令如下:需先停只ntp服务在操作命令

ntpdate ntp1.aliyun.com

 

serdes tx rx 时钟偏差 时钟偏差如何解决_时间同步_02

或者ntpdate -u ntp1.aliyun.com  // 使用ntpdate命令同步指定外网时间

当执行上述命令的时候,我们是强制性的将系统时间更改为阿里云的NTP服务器的时间,但是随着系统的运行,系统时间又会逐步的发生偏移,因此,我们可以采取cron定时任务的方式,将上述命令写成定时任务脚本,使其定期执行。

 

注意: 本人博客只提供参考,可能会有书写不规范情况等问题,不要复制粘贴。可结合其他网站学习