3.2. 启用硬件时间戳
您可以在 /etc/chrony.conf 文件中使用 hwtimestamp 指令,对一个或多个接口启用硬件时间戳。该指令可指定单一接口,也可以指定通配符字符来启用所有支持接口的硬件时间戳。
流程
编辑
/etc/chrony.conf文件,并进行以下更改:为支持硬件时间戳的接口添加
hwtimestamp设置。例如:hwtimestamp enp1s0 hwtimestamp eno*如果没有其他应用程(如
ptp4l)使用硬件时间戳,您可以使用 * 通配符。通过在服务器设置中附加
minpoll和maxpoll选项来配置简短的客户端轮询间隔,例如:server ntp.example.comlocal minpoll 0 maxpoll 0对于硬件时间戳,您必须配置一个比默认范围(641024 秒)短的轮询间隔,以尽量减少系统时钟的偏移。
通过在服务器设置中附加
xleave选项来启用 NTP 交错模式:server ntp.example.comlocal minpoll 0 maxpoll 0 xleave使用这个设置,chrony 仅在发送数据包后得到硬件传输时间戳。此行为防止服务器将时间戳保存它响应的数据包中。使用
xleave选项,chrony 可以接收传输后生成的传输时间戳。可选:为服务器上客户端访问的日志增加分配的最大内存大小,例如:
clientloglimit 100000000默认服务器配置允许数以千计的客户端同时使用交错模式。通过增加
clientloglimit设置的值,您可以为大量客户端配置服务器。
重启 chronyd 服务:
# systemctl restart chronyd
验证
可选:在
/var/log/messages日志文件中验证是否启用了硬件时间戳:chronyd[4081]: Enabled HW timestamping on enp1s0 chronyd[4081]: Enabled HW timestamping on eno1如果 chronyd 被配置为 NTP 客户端或 peer,显示传输和接收时间戳模式和交集模式:
# chronyc ntpdata Remote address : 203.0.113.15 (CB00710F) Remote port : 123 Local address : 203.0.113.74 (CB00714A) Leap status : Normal Version : 4 Mode : Server Stratum : 1 Poll interval : 0 (1 seconds) Precision : -24 (0.000000060 seconds) Root delay : 0.000015 seconds Root dispersion : 0.000015 seconds Reference ID : 47505300 (GPS) Reference time : Wed May 03 13:47:45 2017 Offset : -0.000000134 seconds Peer delay : 0.000005396 seconds Peer dispersion : 0.000002329 seconds Response time : 0.000152073 seconds Jitter asymmetry: +0.00 NTP tests : 111 111 1111 Interleaved : Yes Authenticated : No TX timestamping : Hardware RX timestamping : Hardware Total TX : 27 Total RX : 27 Total valid RX : 27报告 NTP 测量的稳定性:
# chronyc sourcestats .... 210 Number of sources = 1 Name/IP Address NP NR Span Frequency Freq Skew Offset Std Dev ntp.local 12 7 11 +0.000 0.019 +0ns 49ns ....
Std Dev 列中报告了这个稳定性。启用硬件时间戳后,在正常负载下,NTP 测量的稳定性应该为十或几百纳秒。