leap second 是指Linux系统自动调整系统时间,这通常会发生在某个月的月末,很可能是6月和12月的月底,当leap second发生的时候可能会导致应用程序(Java)很繁忙,从而导致响应很慢。


若如下命令返回中有leap=01,那么就意味着将会有leap second发生

ntpq -c "lassoc" -c "mrv &1 &999 leap,srcadr,stratum"

若如下命令返回中有“no leap seconds”, 则表示不会有leap second发生。

file /etc/localtime

若如下命令有返回,则表示会有leap second发生。

ntptime |egrep 'INS|DEL'

若你的系统存在leap second问题,可以用以下办法解决。

停止ntpd服务

- 重设内核状态和频率,

ntptime -s 0 -f 0

- 在/etc/sysconfig/ntpd文件中追加-x,启用slew mode

- 启动ntpd服务


leap second 之发生在特定ntpd和kernel中,本文贴上一个leap second 压力测试的C程序。

leap-a-day.c