时间,闰秒,及NTP
1.时间
格林尼治时间 GMT,以地球自转为准的时间,也叫世界时UT,但是由于自转速度会变化,所以后来不被作为标准。
世界协调时UTC,以原子钟为准,现在时间校准的标准就是原子钟。
2.闰秒
是指地球自转时间加长,每过1~2年都会增加1秒左右,但是我们是以UTC为准的,如果不调整UTC的话,GMT和UTC会相差越来越大。
故某个组织就定了一套规则,每次增加1秒就固定在6月或12月底加一秒。
这里加一秒是指调整UTC的时间,比如本来UTC当前时间戳为1436255907,下一秒原子钟应该跳到1436255908,但是碰到闰秒设置的时候,组织就把下一秒的原子钟还是调为1436255907,然后后面继续1秒1秒的加(个人猜测,可能跟实际有误)。所以这里所说的加一秒是指某个时间戳所持续的时间由1秒变成2秒。服务器等会到校时服务器上去拿最新时间校验,此时服务器时间戳可能会不变,也可能会倒退1s。
可能带来的问题:服务器时间倒退,一些涉及到sleep,计时器,或者循环的一些逻辑可能出现错误或者死循,一些低版本应用或者系统可能会因此出现故障。
如:Linux kernel低于2.6.18-164的Linux系统在2012年那次闰秒时如果不停ntp服务的话会因为ntpd锁死而重启。
不过大部分问题都只是一些程序BUG,写代码的时候未注意处理出现闰秒时时间戳的处理,当然也包括操作系统本身在防范时间倒退上的一些处理。
貌似后来linux 或者ntpd都优化了对闰秒的处理,所以写程序的时候应该可以无视这种可能性。个人觉得ntpd在同步时间时,若发现比当前小1秒左右,可以判断一下是否出现在闰秒的日期附近,是的话就不进行倒退处理而是保持,同时时钟tick进行特殊处理,过了2秒才tick到下一时间戳。不知道实际ntpd是不是这样做的。
3.ntp
network time protocol
一种控制在几十ms或者几ms误差,提供加密处理的时间同步协议。
linux下时间同步可以用2个方法,两种方法不能同时用:
1)crontab 里面加 */5 * * * * /usr/sbin/ntpdate 172.16.10.69 > /dev/null 2>&1 计划任务跑用ntpdate命令 往69服的ntp服务器上同步最新数据
不过用这个命令就会出现上面时间跳跃的问题,所以一个健壮的系统(如外网)最好不要用这个
2)填好配置,/etc/ntp.conf 等一些,然后启动ntpd服务,服务会到配置的server上同步最新时间,也会开启123端口作为ntp服务器给其他客户端连。
ntp开启的123端口是udp的,所以netstat -nul|grep 123 其中 u表示udp,l表示只显示监听的,(一般的a表示显示所有的)
相关ntp的一些文章:
如何解决2012年7月1日增加闰秒后引起linux系统重启问题 http://www.2cto.com/os/201207/138634.html
linux时间同步,ntpd、ntpdate http://blog.sina.com.cn/s/blog_636a55070101u1mg.html
http://blog.chinaunix.net/uid-20690190-id-1894436.html
一台机器如何实现既做NTP服务器又做NTP客户端 http://bbs.csdn.net/topics/310020973
时间,闰秒,及NTP的更多相关文章
- Windows 客户端时间更新脚本NTP
Windows XP 客户端时间更新脚本NTP ::Windows XP 客户端时间更新脚本NTP reg add "HKEY_LOCAL_MACHINE\SOFTWARE\Microsof ...
- 时间服务器: NTP 服务器及客户端搭建
时间服务器: NTP 服务器及客户端搭建 一. NTP 服务器的安装与设定 1. NTP 服务器的安装与设定前言 2. 所需软件与软件结构 3. 主要配置文件 ntp.conf 的处理 4. NTP ...
- 自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org, 120.24.166.46 端口 123
自动与因特网时间服务器同步 NTP 服务器 pool.ntp.org 海康提供的NTP服务器 120.24.166.46 端口 123
- 使用PowerCLI给ESXi批量设置时间和配置NTP
在现代的各种业务系统中,时间同步很重要.现在VMware的虚拟化解决方案应用非常广泛,给ESXi宿主机一个统一准确的时间,也给客户机系统一个准确的时间. 生产环境中主机数量少的话倒是可以手动设置,但是 ...
- 搭建NTP时间服务器~使用NTP同步时间~构建主机间时间自动同步关系
NTP是一个时间服务器,同时它也是一个时间客户端. 我们可以使用它构建主机与主机之间的时间自动同步环境,保证所有服务器时间一致性. 常用的公共NTP时间服务器有: cn.ntp.org.cn 中国 n ...
- 时间服务器:NTP 服务器
15.1 关于时区与网络校时的通讯协议 使得每一部主机的时间同步化. DHCP 客户端/服务器端所需要的租约时间限制. 网络侦测时所需要注意的时间点.刚刚谈到的登录文件分析功能.具有相关性的主 ...
- Centos 修改时间地区及NTP同步北京时间
在我们使用CentOS系统的时候,也许时区经常会出现问题,有时候改完之后还是会出错,下面我们就来学习一种方法来改变这个状况.如果没有安装,而你使用的是 CentOS系统 那使用命令 yum insta ...
- 设置新时间校正服务器NTP SERVER
时间校正服务器IP : 10.*.*.* 适用系统:windows server 2008/windows 7 net stop w32time net start w32time w32tm /qu ...
- CentOS7时间设置及ntp同步配置(转)
出处:http://www.centoscn.com/CentOS/config/2015/1105/6385.html http://www.centoscn.com/CentOS/config/2 ...
- centos7 时间设置及ntp
转自:https://blog.gtwang.org/linux/howto-set-date-time-from-linux-command-prompt/ 這裡介紹各種在 Linux 中以手動來調 ...
随机推荐
- iOS KVO的原理
KVO(Key Value Observing),是观察者模式在Foundation中的实现. KVO的原理 简而言之就是: 1.当一个object有观察者时,动态创建这个object的类 ...
- 无刷新分页 jquery.pagination.js
无刷新分页 jquery.pagination.js 采用Jquery无刷新分页插件jquery.pagination.js实现无刷新分页效果 1.插件参数列表 http://www.dtan.so ...
- 开源入侵检测系统OSSEC搭建之二:客户端安装
上一篇文章中已经将OSSEC服务端的安装以及客户端的Key导出操作做了解说,接下来在另一台虚拟机中安装客户端,与安装服务端类似同样需要安装ossec,步骤如下. 一.下载ossec-hids-2.8. ...
- maven项目配置Jetty服务器
<plugin> <groupId>org.mortbay.jetty</groupId> <artifactId>jetty-maven-plugin ...
- CRC校验码
循环冗余校验码(CRC)的基本原理是:在K位信息码后再拼接R位的校验码,整个编码长度为N位,因此,这种编码也叫(N,K)码.对于一个给定的(N,K)码,可以证明存在一个最高次幂为R的多项式G(x)(R ...
- org.tigris.subversion.javahl.ClientException: Attempted to lock an already-locked dir异常解决方法
myeclipse用svn提交的时候报错: Attempted to lock an already-locked dir svn: Working copy 'D:/Program Files/My ...
- mssql修改链接数为默认值
EXEC sys.sp_configure N'show advanced options', N'1' RECONFIGURE WITH OVERRIDE GO EXEC sys.sp_confi ...
- Grunt + Bower—前端构建利器(转)
目前比较流行的WEB开发的趋势是前后端分离.前端采用重量级的Javascript框架,比如Angular,Ember等,后端采用restful API的Web Service服务,通过JSON格式进行 ...
- jQuery的datatable怎么才能给某一列添加超链接?
aocolumeDef.这个里面去定义.return返回的字符串会代替原来cell里面的内容 e.g: datatable=$('#dt_basic').dataTable({ "bAuto ...
- django - get_or_create() 使用提醒
[omron - debug] user_id建表的时候,不能使用unique,因为一个用户,可能有多个product_id,相对应的是,get_or_create()中的查询参数,如果在建表中有un ...