3.2. 启用硬件时间戳
您可以在 /etc/chrony.conf
文件中使用 hwtimestamp
指令,对一个或多个接口启用硬件时间戳。该指令可指定单一接口,也可以指定通配符字符来启用所有支持接口的硬件时间戳。
流程
编辑
/etc/chrony.conf
文件,并进行以下更改:为支持硬件时间戳的接口添加
hwtimestamp
设置。例如:hwtimestamp enp1s0 hwtimestamp eno*
hwtimestamp enp1s0 hwtimestamp eno*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果没有其他应用程(如
ptp4l
)使用硬件时间戳,您可以使用 * 通配符。通过在服务器设置中附加
minpoll
和maxpoll
选项来配置简短的客户端轮询间隔,例如:server ntp.example.comlocal minpoll 0 maxpoll 0
server ntp.example.comlocal minpoll 0 maxpoll 0
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于硬件时间戳,您必须配置一个比默认范围(641024 秒)短的轮询间隔,以尽量减少系统时钟的偏移。
通过在服务器设置中附加
xleave
选项来启用 NTP 交错模式:server ntp.example.comlocal minpoll 0 maxpoll 0 xleave
server ntp.example.comlocal minpoll 0 maxpoll 0 xleave
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用这个设置,chrony 仅在发送数据包后得到硬件传输时间戳。此行为防止服务器将时间戳保存它响应的数据包中。使用
xleave
选项,chrony 可以接收传输后生成的传输时间戳。可选:为服务器上客户端访问的日志增加分配的最大内存大小,例如:
clientloglimit 100000000
clientloglimit 100000000
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 默认服务器配置允许数以千计的客户端同时使用交错模式。通过增加
clientloglimit
设置的值,您可以为大量客户端配置服务器。
重启 chronyd 服务:
systemctl restart chronyd
# systemctl restart chronyd
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
验证
可选:在
/var/log/messages
日志文件中验证是否启用了硬件时间戳:chronyd[4081]: Enabled HW timestamping on enp1s0 chronyd[4081]: Enabled HW timestamping on eno1
chronyd[4081]: Enabled HW timestamping on enp1s0 chronyd[4081]: Enabled HW timestamping on eno1
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果 chronyd 被配置为 NTP 客户端或 peer,显示传输和接收时间戳模式和交集模式:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 报告 NTP 测量的稳定性:
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
Std Dev
列中报告了这个稳定性。启用硬件时间戳后,在正常负载下,NTP 测量的稳定性应该为十或几百纳秒。