北京时间7月早上8点左右,集群收到报警,cpu暴增,经过排查发现hadoop集群没有任何job执行,然而CPU基本是满载,非常奇怪。还好现在集群没有在线服务和比较重要的任务处理。排查毫无头绪。
周一上班,打开各类新闻,北京时间7月1日全球于7:59后增加一秒,出现7:59:60的特殊现象,然后是8:00:00。
紧接着就是互联网行业内都不同程度的受到闰秒影响,造成服务器宕机,
经过上网查阅资料,发现是因为操作系统内核在处理闰秒的时候,导致部分试图获取当前系统时间的进程出现Live Lock,也就是说,某个进程/线程在查询系统时间的时候,进入了一种类似死循环的状态,CPU利用率很高,同时不能完成时间查询。
猜测JVM和MySQL试图通过CPU硬件晶振的数据获得当前精确的时间,由于闰秒的关系,这个时间和操作系统维持的墙上时间(Wall Time,也就是显示给用户看的时间)不一致,导致了这个问题。
系统时间对于各种服务器程序尤为重要,hadoop集群节点都定期收集和报告系统状态,如果系统时间无法获取,可能导致部分节点被误判为故障,自动引起一系列不必要的故障恢复动作。
我们首先选择的方式是重启所有服务,但是很显然没有解决问题,后来经过运维部同事排查,我们Linux服务器默认启用Ntp服务器的时间源是centeros的,所以我们先关闭了ntp服务,改由局域网同步,问题可以解决。
当然网上也有解决方案:Mozilla的一篇blog, 也谢谢Google快速灵活的实时索引,我们在重启服务器的过程中,发现了如下更简单的解决办法:
$ cat files/bin/leap-second.sh
# this is a quick-fix to the 6/30/12 leap second bug
if [ ! -f /tmp/leapsecond_2012_06_30 ]
then
/etc/init.d/ntpd stop; date `date +"%m%d%H%M%C%y.%S"` && /bin/touch /tmp/leapsecond_2012_06_30
fi
这个脚本只是简单的强制重置系统时间,从而让系统中所有时间回到同步的状态。完成后,你可以确认所有服务的状态回到正常,然后手动重启ntp服务。类似mozilla, 我们也使用puppet将该脚本在所有服务器上执行。
分享到:
相关推荐
一秒搜硬盘.zip
一秒关机+一秒重启 1
C语言写的一个计算下一秒是什么时间的例子
一秒快速关机,自制作,无病毒
一秒新建多个文件夹.bat
微机汇编一秒延时子程序,比较难得的资源 ,单片机上延时一秒容易,微机上比较困难
一秒关机(世上最快关机) 自制快速关机
只要安装了这个软件,就可以实现一秒关机,避免你慢慢等待关机的痛苦。把软件解压后放在桌面,关机时双击就可以一秒关闭电脑。
扫雷,一秒扫雷绝对快,易语言+(雪峰破解补丁)编译制作,绝对无毒 内含源代码
关于通过用户输入的时间,可以计算下一秒的时间
喜马拉雅产品分析报告:每一秒陪伴都有爱.pdf
最近微信上很火的一个小游戏,你的一秒有多长安卓版,完美代码. 代码有点大是因为我加了字体特效。还没有做压缩处理,不过可以根据自己需求修改
易语言一秒扫雷.rar 易语言一秒扫雷.rar 易语言一秒扫雷.rar 易语言一秒扫雷.rar 易语言一秒扫雷.rar 易语言一秒扫雷.rar
小例子--当前时间加三天时间减一秒
任意输入一个时间,输出下一秒;例如输入当前时间2006年12月20日19时17分59秒,计算后输出时间是2006年12月20日19时18分00秒。
网上已有的软件,但通过反编译修改了在微信上不能使用的bug,只能保证微信一秒语音可用,其余并未测试。语音包自己去网上找
一秒有多长HTML5游戏源码,运行需要服务器环境,已经反复测试,放心使用。
对输入的时间进行简单的判断,得到下一秒的时间,然后输出出来结果。用c语言实现的
一秒取群成员.rar 一秒取群成员.rar 一秒取群成员.rar 一秒取群成员.rar 一秒取群成员.rar 一秒取群成员.rar
你能想象某人变成丧尸后是什么样子吗? 如果你足够胆大而又想找点刺激,那就来体验一下这个PS动作吧 别忘了把做好的图片发朋友圈恶搞一下哦