记一次时间同步引起的故障
时间:2019-01-02 04:24:43 +0800 CST 浏览:3604

ntpdate同步时间,时间跳跃,引起服务中断。

计划任务

0 4 * * * /usr/sbin/ntpdate  10.200.3.71

日志

Dec 30 04:00:01 localhost systemd: Created slice user-0.slice.
Dec 30 04:00:01 localhost systemd: Starting user-0.slice.
Dec 30 04:00:01 localhost systemd: Started Session 16 of user root.
Dec 30 04:00:01 localhost systemd: Starting Session 16 of user root.
Dec 29 20:09:59 localhost systemd: Time has been changed
Dec 29 20:09:59 localhost systemd: Removed slice user-0.slice.
Dec 29 20:09:59 localhost systemd: Stopping user-0.slice.

故障

因为跳跃的时间太大,导致系统的各种服务中断(网络中断和systemctl管理的服务也有问题)。

解析

ntpdate同步时间,会造成时间的跳跃,对一些依赖时间的程序和服务会造成影响。比如sleep,timer等。而且,ntpd服务可以在修正时间的同时,修正cpu
tick。理想的做法为,在开机的时候,使用ntpdate强制同步时间,在其他时候使用ntpd服务来同步时间。

要注意的是,ntpd有一个自我保护设置: 如果本机与上源时间相差太大, ntpd不运行. 所以新设置的时间服务器一定要先ntpdate从上源取得时间初值,
然后启动ntpd服务。ntpd服务运行后, 先是每隔指定的时间与上源服务器同步一次, 根据每次同步时测得的误差值经复杂计算逐步调整自己的时间,
随着误差减小, 逐步增加同步的间隔. 每次跳动, 都会重复这个调整的过程.



如果这篇文章对你有所帮助,可以通过下边的“打赏”功能进行小额的打赏。

本网站部分内容来源于互联网,如有侵犯版权请来信告知,我们将立即处理。


来说两句吧