2017元旦多1秒闰秒变更对服务器的影响

2017年元旦多出的“1秒”将加在格林尼治时间12月31日23时59分后,通过增加闰秒实现。由于北京处于东八时区,所以将在2017年1月1日7时59分59秒后面增加1秒,届时会出现7时59分60秒的特殊现象。

20161231212644

为什么要增加1秒?这1秒从何而来?据天文专家介绍,为了确定时间,世界上有两种时间计量系统,基于地球自转得出的“世界时”和基于原子振荡周期确定的“原子时”。由于两种时间尺度对秒的测量方法不同,随着时间的推移,这两个时间系统之间就会出现差异,所以有了“协调世界时”的概念。

“协调世界时”以原子时秒长为基础,在时刻上尽量接近于世界时。1972年,国际计量大会决定,当“世界时”与“原子时”之间时刻相差超过0.9秒时,就在协调世界时上加上或减去1秒(正闰秒或负闰秒),以尽量接近世界时,这就是闰秒。

1.1 什么是闰秒

闰秒(或称跳秒)是对协调世界时作出加一秒或减一秒的调整。

国际原子时的准确度为每日数纳秒,而世界时的准确度为每日数毫秒。对于这种情况,一种称为协调世界时的折衷时标于1972年面世。为确保协调世界时与世界时相差不会超过0.9秒,在有需要的情况下会在协调世界时内加上正或负一整秒。这一技术措施就称为闰秒。

是否加入闰秒由位于巴黎的国际地球自转和参考坐标系统服务决定,在格里历的每年的6月或12月的最后一天的最后一分钟进行跳秒或不跳秒,也就是说每年的这两个一分钟并不就是等于60秒,而是在60秒上下变化。

这一秒是被加在第二天的00:00:00前的。当决定加入正闰秒的时候,当天23:59:59的下一秒当记为23:59:60,然后才是第二天的00:00:00。如果是负闰秒的话,23:59:58的下一秒就是第二天的00:00:00了。

现时所有闰秒都是正闰秒。

1.2 历次闰秒调整

实施年份

6月30日23:59:60

12月31日23:59:60

实施年份

6月30日23:59:60

12月31日23:59:60

1972年

+1秒

+1秒

1989年

——

+1秒

1973年

——

+1秒

1990年

——

+1秒

1974年

——

+1秒

1992年

+1秒

——

1975年

——

+1秒

1993年

+1秒

——

1976年

——

+1秒

1994年

+1秒

——

1977年

——

+1秒

1995年

——

+1秒

1978年

——

+1秒

1997年

+1秒

——

1979年

——

+1秒

1998年

——

+1秒

1981年

+1秒

——

2005年

——

+1秒

1982年

+1秒

——

2008年

——

+1秒

1983年

+1秒

——

2012年

+1秒

——

1985年

+1秒

——

2015年

+1秒

——

1987年

——

+1秒

1.3 2012年闰秒变更分析

国际地球自转和参考坐标系统服务(IERS)将在格林威治时间2012年6月30日午夜增加一闰秒(维基百科关于闰秒的说明),由于Linux kernel和Posix关于NTP时间跳变的标准不同,将在2012年6月30日23:59:59 跳变到2012年7月1日后引起ntpd进程锁死,从而造成部分开启ntp服务的linux系统重启.

这个问题将影响部分开启ntp服务的Linux操作系统–会导致Linux内核Crash!Linux kernel是在2.6.18-164.e15之后的版本中解决了这个问题。换句话说,Linux kernel低于2.6.18-164的Linux系统,无论是什么公司的Linux都将受到影响。(今晚过后大家可以查看一下你的Linux系统日志,看看闰秒有没有发生)

可以参看下面的bug描述:
· LKML: Chris Adams: Re: Bug: Status/Summary of slashdot leap-second crash on new years 2008-2009
· Bug 479765 – Leap second message can hang the kernel

1.4 2012闰秒变更时全球重大事故

除了Linux服务器外,一些服务器程序也因为闰秒出现了问题,如Reddit、Mozilla、FourSquare、Yelp、LinkedIn和Gawker等网站都短暂遭遇了技术问题,国内的一家云储存供应商发现运行在CentOS 6.2上的Java和MySQL因闰秒出现了不同程度的CPU利用率增长, 猜测是JVM和MySQL试图通过CPU硬件晶振的数据获得当前精确的时间,由于闰秒的关系,这个时间和操作系统维持的墙上时间(Wall Time,也就是显示给用户看的时间)不一致,导致了这个问题。简单的修正方法是强制重置系统时间,让系统中所有时间回到同步的状态。

1.5 如何避免闰秒对服务器的影响

(1)先关闭ntp时间同步,2017年1月1日8时10分开启ntp服务;
(2)发布一个运维方面的紧急预警,由于2017年1月1日闰秒问题,服务器存在隐患,需要通知预防,检查对时间较敏感的业务;
虽然闰秒调整对普通民众的日常生活不会产生影响。不过,这个问题将影响部分开启ntp服务的Linux操作系统——会导致Linux内核Crash!Linux kernel是在2.6.18-164.e15之后的版本中解决了这个问题。换句话说,Linux kernel低于2.6.18-164的Linux系统,无论是什么公司的Linux都将受到影响。
(3)使用了timestamp,那么应用可能会报错;

转载请注明:安全主题 » 2017元旦多1秒闰秒变更对服务器的影响

赞 (0)

评论 0

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址