闰秒为什么会导致linux出现问题

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 由于Linux kernel 2.6.29之前版本存在bug,在进行闰秒调整时可能会引起系统时钟服务ntpd进程死锁。Debian Lenny、RHEL/CentOS 5等旧发行版今天仍被广泛使用,部分供应商早已经发布了补丁。 闰秒导致部分Linux服务器高CPU使用率 国际地球自转和参考坐标

由于Linux kernel 2.6.29之前版本存在bug,在进行闰秒调整时可能会引起系统时钟服务ntpd进程死锁。Debian Lenny、RHEL/CentOS 5等旧发行版今天仍被广泛使用,部分供应商早已经发布了补丁。

闰秒导致部分Linux服务器高CPU使用率

国际地球自转和参考坐标系统服务(IERS)在2012年6月30日午夜(北京时间7月1号7点59分59秒)增加一闰秒(即出现7:59:60)。由于Linux kernel 2.6.29之前版本存在bug,在进行闰秒调整时可能会引起系统时钟服务ntpd进程死锁。Debian Lenny、RHEL/CentOS 5等旧发行版今天仍被广泛使用,部分供应商早已经发布了补丁。

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

近日,国际地球自转和参考系统服务地球定向中心(IERS)通过推特重申,国际标准时间UTC将在格林尼治时间2016年12月31日23时59分59秒(北京时间2017年1月1日7时59分59秒)之后,在原子时钟实施一个正闰秒,即增加1秒,然后才会跨入新的一年。

每隔一段时间,目前世界范围内通用的协调世界时(UTC)会与依据地球围绕太阳运动计算的平太阳日和世界时(UT1)出现很小的偏差,需要对UTC增加或者减少一秒来消除。

简要解决方法:在发生闰秒前停掉ntpd服务,闰秒发生后再开启ntpd

根解:放弃使用ntpd,使用简化的sntp协议,同时在实现直接调用settimeofday来完成,不会触发内核的事件调整异常

Java Fortunately the fix is straightforward:

/etc/init.d/ntp stop
date -s "$(date)"

Mysql

The fix is quite simple – simply set the date. Alternatively, you can restart the machine, which also works. Restarting MySQL (or Java, or whatever) does NOT fix the problem. We put the following into puppet to run on all our machines:

$ cat files/bin/leap-second.sh 
#!/bin/bash
# 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 -s "`date`" && /bin/touch /tmp/leapsecond_2012_06_30
fi
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
1月前
|
NoSQL Java Linux
Linux
Linux
14 0
|
6月前
|
Unix Linux 程序员
Linux是什么,其特点是啥
与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,其 logo 是一只企鹅。与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。Linux,全称GNU/Linux,是一种类似Unix的操作系统,可以免费使用,自由传播。它是一个基于POSIX的多用户、多任务、多线程、多CPU的操作系统。随着互联网的发展,Linux得到了全世界软件爱好者、组织和公司的支持。除了在服务器方面保持强劲的发展势头,在个人电脑和嵌入式系统方面也取得了长足的进步。用户不仅可以直观地获得操作系统的实现机制,还可以根据自己的需求对Lin
35 0
|
9月前
|
物联网 Linux
linux关于服务
服务 service指令管理的服务在 etc/init.d 查看 service 服务名 start stop restart reload status 查看服务名 setup 服务七种运行级别 runlevel 0 系统停机状态,为0不能正常启动 1 单用户工作状态,root权限 系统维护,禁止远程登录 2 多用户状态 无nfs 不支持网络 3 完全的多用户状态 用nfc 登录后进入控制台命令行模式 multi-user.target 4 系统未使用 保留 5 x11控制台 登录后进入gui模式 graphical.target 6 系统正常关闭并重启 默认运行级别不能是6,否则不
39 0
|
运维 机器人 Linux
学Linux到底学什么?
熟悉我的朋友应该知道,我是一名Linux工程师。那么我来问大家一个问题,提到Linux,你们第一时间想到的是这是一个怎样的岗位呢?我相信会有很大一部分的朋友会想到两个字:运维。
132 0
学Linux到底学什么?
|
安全 Linux 程序员
Linux 下如何知道是否有人在使坏?
Linux 下如何知道是否有人在使坏?
109 0
|
Linux
linux which
1. 查找可执行文件的位置、显示命令所在路径 命令: which pwd 输出: hc@hc-virtual-machine:~/test$ which pwd /bin/pwd hc@hc-virtual-machine:~/test$ which...
783 0
|
Shell Linux
linux more
more命令,功能类似 cat ,cat命令是整个文件的内容从上到下显示在屏幕上。 more会以一页一页的显示方便使用者逐页阅读,而最基本的指令就是按空白键(space)就往下一页显示,按 b 键就会往回(back)一页显示,而且还有搜寻字串的功能 。
730 0
|
Linux Perl
Linux三剑客
awk image.png image.png BEGIN块 image.png awk 'BEGIN{a=11;if(a>=9){print "ok"}}' image.
1193 0
|
缓存 Linux 索引
|
Linux
linux中的~ / .
~代表你的/home/用户目录 假设你的用户名是xxx,那么~/ = /home/xxx/ .是代表此目录本身,但是一般可以不写 所以cd ~/. = cd ~ = cd ~/ 但是.后面有东西又是另外一个问题,点在文件名头部,代表一个[隐藏文件] ~/.local是你的主目录下一个.local的文件夹的路径, 并且从.可以看出,这是一个饮藏文件, 如果不用ls -a的话,一般ls是无法看到的 / 是目录层的分隔、表示符。
1096 0