说起闰年、闰月,人们都知道这是为了弥补因人为历法规定造成的年度天数与地球实际公转周期的时间差而增加的。闰秒的概念也类似,由于地球自转的不均匀性和长期变慢性,会使世界时和原子时之间相差超过到±0.9秒时,就把世界时向前拨1秒或向后拨1秒,一般加在公历年末或公历六月末。从1972年开始,这已经是第26次增加闰秒。地球转了那么多年,误差日积月累,从量变到质变,如果不设法校准,那么所有的当日都有可能是昨日,所以必须对时间进行校对。闰秒说起来很容易,将手机手表等电子设备向后调整一秒钟就可以了,但是弄不好还会给我们带来大麻烦。在2012年闰秒就使得社交新闻聚合网站Reddit遇到了技术故障,当时在2012年7月1日7:59:59增加一秒,记为23:59:60,这增加的一秒,使得Reddit的服务器在这一刻出现了不同程度的CPU利用率增长,由于Java构建的开源数据库Apche Cassandra处理不当,Java和Mysql导致了服务器CPU占用率的升高,最后不得不重启。由此看来,闰秒表面上看只是给钟表额外增加一秒钟时间,但就这个看似微不足道的举动,对普通民众的日常生活不会产生影响,时间快一秒慢一秒大家都感觉不出来,更不会出现千禧年千年虫那样的问题。
不过闰秒对于全球的电子设备来讲,可能会给我们带来了不少麻烦,尤其是一些特殊行业,比如在航天领域,飞船1秒钟就要飞将近8公里的路程,要是差了这1秒,误差可就大了:飞船轨道可能偏移,飞船着陆地点可能差上十万八千里,更糟糕的是飞船的安全会受到巨大的威胁。再比如,网络通信上,协调世界时被用在很多互联网标准中,像网络时间协议就是其中的一种。如果出现1秒的误差,全世界那么多台电脑一下子都乱了套。另外,电网故障的维修、电网与电网之间的并网,都需要使用精密时间,如果出了1秒钟的误差,甚至有可能是整张电网的停电甚至崩溃。所有的电子设备在设计时很少考虑时间上会出现闰秒的现象,当我们突然对设备的时间进行人为干预的时候,就可能导致设备里记录的数据出现紊乱,最终可能设备无法理解这样的时间调整而最终走向崩溃。
虽然闰秒给我们带来不少的麻烦,但是调整是绝大部分人的公识,当然也有一些组织寻求废除闰秒制度,闰秒的反对者认为闰秒带来的好处并不比引发的技术问题更大,即使每年都出现闰秒,到3015年,地球的时间也不过慢了16分钟。目前来讲,提倡闰秒的依然是主流的声音。如何应对闰秒呢,尤其是在数据中心里有大量的电子设备,一旦设备出现异常将导致数据中心承载的业务受到影响。数据中心的新技术日新月异,每年都有大量代码和程序被创作出来。而最近十年只有三次闰秒,肯定会有很多开发者不熟悉这个概念,在编写一些对通讯依赖较多的程序时没有意识到闰秒可能带来的影响,埋下隐患,那么如何避免?首先,要在数据中心里部署同步授时设备,这些设备可以接收国家标准时间信号,当国家标准时间调整时,数据中心的授时设备很快随之调整,同时向数据中心里的所有设备更新时间,这个前提是要数据中心里的设备都要和授时设备进行时间同步。其次,对于设备可能存在闰秒风险要提前预知,当国家发布闰秒调整时,数据中心要向所有的设备供应商了解其设备是否可能存在闰秒风险,由设备供应商自己去查设备的代码实现,是否有考虑人为增加或减少时间对设备运行的影响,一旦发现可能有问题,在闰秒来临之间,及时更新软件或打上热补丁,解决响应的软件问题。当然很多时候,如果闰秒并不会导致系统崩溃,数据丢失等严重现象,也可以不进行软件的调整。第三,谷歌想到了更好的应对闰秒的问题,谷歌在其服务器时钟中每天人为添加数毫秒,以此避免闰秒出现。而当闰秒出现时,调整幅度已经不足以引发任何报警。之所以这样,是因为数据中心里的设备成千上万,我们是不可能,将所有的设备都检查下确认是否存在闰秒风险,这要耗费大量的人力与物力。这样莫不如像谷歌这样进行时间的微调,在闰秒来临之前,将数据中心所有设备的时间一点点调慢,最终达到闰秒的效果。最后,由于很多闰秒的调整可以遇上特殊的时间,比如股票交易,航空飞行等,这样闰秒的到来可能会带来未知风险,这样数据中心可以将闰秒的调整放到业务量少的后半夜进行,对数据中心业务冲击最小。虽然规定在统一时间进行调整,但是数据中心此时可以不选择时间同步,在业务量最少的时候再选择更新同步时间。有了这些应对措施,其实闰秒并不可怕,这十年内,我们经历了三次闰秒,虽然有些数据中心出现了一些差错,但是对于全球数百万个数据中心来讲,发生故障的概率还是很低的,所以要坦然面对闰秒事件,在闰秒来之前,做足功课,想好各种应对措施,消除闰秒对数据中心运行带来的任何影响。
讲到闰秒,有些媒体过分地夸大了它的影响,甚至说全国的数据中心会陷入恐慌,其实是对闰秒处理机制的不了解。实际上,目前很多服务器的操作系统Linux和Windows都自代处理闰秒的程序,当闰秒到来时,可以自动调整确保系统不出现任何问题。对于闰秒,完全没有必要过分担心,2000年的千年虫事件,当时也说的很恐怖,可能会造成世界所有计算机瘫痪,结果几乎没有发现什么故障,有时人就喜欢自己吓唬自己。虽然如此,我们还是要对闰秒事件做好充分准备,不怕一万就怕万一。