zoukankan      html  css  js  c++  java
  • ntp的中级知识

    1. ntp启动参数-g什么意思?为什么误差超过1000s ntpd会异常退出?-x参数又是什么意思?
    2. 如何缓慢调整ntp?
    3. 机器本地如何守时? 如果ntp校准不回来怎么办?
    4. adjtimex修改tick值用法举例
    5. chrony和ntp区别?
    6. adjtimex和时钟的几个概念tick,freq,ppm?
    7. Linux上夏时令是什么?夏时令到了我们需要做什么吗?
    8. NTP问题排查常见工具?

    1,ntp启动参数-g是什么意思?为什么误差超过1000s ntpd会异常退出? -x参数又是什么意思?

    Normally, ntpd exits with a message to the system log if the  offset  exceeds the panic threshold, which is 1000 s by default. This option allows the time to be set to any value without restriction;  however,  this  can happen only once. If the threshold is exceeded    after that, ntpd will exit with a message to the system log.  This  option can be used with the -q and -x options. See the tinker command for other options.

    这是对-g参数的说明:

    通常,如果偏移量超过了紧急阈值ntpd会退出并发送消息系统日志,阈值默认情况下为1000秒。 此选项允许将时间设置为任何值而不受限制; 然而,这只会发生一次。 如果超过阈值,则ntpd将退出并发送消息到系统日志。 该选项可以与-q和-x选项一起使用。 有关其他选项,请参阅tinker命令。

    当偏移量超过1000s的时候ntp自动退出,这是由时钟纪律算法决定的,超过1000s的时候它会崩溃退出。

    -q选项在手册里这么解释的:

    Exit the ntpd just after the first time the clock is set. This behavior mimics that of the ntpdate program, which is to be retired. The -g and -x options can be used with this option. Note: The kernel time discipline is disabled with this option.

    在第一次设置时钟后退出ntpd。 这种行为模仿ntpdate程序的行为,该程序将被退休。 -g和-x选项可以与此选项一起使用。 注意:使用此选项禁用内核时间规则。

    也就是说开启了这个选项等同于使用ntpdate一样同步完就退出。

    -x参数是代表的是开启ntp的slew同步模式,即缓慢,有序的微调模式。

    2,如何缓慢调整ntp?

    缓慢调整ntp就是开启slew模式,即启动ntpd服务之前手动同步一次,然后开启-x选项,最后开启ntpd服务即可。

    3,机器本地如何守时? 如果ntp校准不回来怎么办?

    本地是随着硬件时钟同步的,硬件时钟是由计算机的电子控制的晶体振荡器觉得的。如果ntp校准不会来的话可以人工进行干预,手动同步,缩小偏移量之后再进行自动同步。

    4,adjtimex修改tick值用法举例

    http://www.turbolinux.com.cn/turbo/wiki/doku.php?id=system:adjtimex%E7%AE%80%E4%BB%8B

    这是turbolinux官网对adjtimex的解释。我决定这个描述比adjtimex手册的描述更能让人理解。

    linux系统有两个时钟:一个是由主板电池驱动的“Real Time Clock”也叫做RTC或者叫CMOS时钟,硬件时钟。当操作系统关机的时候,用这个来记录时间,但是对于运行的系统是不用这个时间的。另一个时间是 “System clock”也叫内核时钟或者软件时钟,是由软件根据时间中断来进行计数的,内核时钟在系统关机的情况下是不存在的,所以,当操作系统启动的时候,内核时钟是要读取RTC时间来进行时间同步(有些情况下,内核时钟也可以通过ntp服务器来读取时间) 这两个时钟通常会有一些误差,所以长时间可以导致这两个时钟偏离的比较多,最简单的保持两个时间同步的方法是用软件测出他们之间的误差率,然后用软件进行修正。在每次重新启动系统的时候,系统都会用hwclock命令对时间进行同步。如果内核时钟在每一个时间中断都快或者慢的话,可以用adjtimex命令进行调整,使得RTC和内核时间走的快慢一致。 adjtimex 允许用户来调整内核的时间参数,因此可以改变内核时间的速度,可以用hwclock命令来比较出内核时间和RTC时间的偏移率,然后利用adjtimex 命令根据偏移率来对内核时间进行校正,使得内核时间走的快些或者慢些,当经过调整的内核时间跟RTC时间走的同样快的时候,可以把这个命令行写到启动脚本里面,让每次机器启动的时候都可以把内核的时间参数调整正确。

    adjtimex 的参数

    • -p, –print 输出内核时间变量的值
    • -t, –tick val 设置内核时钟计数间隔(微秒)
    • -f, –frequency newfreq 设置系统时钟偏移量
    • -c, –compare[=count] 比较系统时钟和CMOS时钟
    • -i, –interval tim 设置时钟比较间隔时间 (sec)
    • -l, –log[=file] 将当前时间记录到文件中
    • –host timeserver 查询时间服务器
    • -u, –utc 将CMOS时钟设置成UTC

    有了-c这个参数就好说了。

    adjtimex -c  可以比较系统时钟和CMOS时钟

    前面的tick/freq字段表示内核的tick和freq值,后面的tick/freq表示系统对tick和freq的推荐值,用这个值可以对系统时间进行校正。针对上面的误差可以不需要校正,若需要修正可使用adjtimex –t或adjtimex –f指令进行修正。

    注意,这里系统会连续测试出好几个连续的差别,一般可以参考平均值

    于是我这里采用的是平均值

    我这儿设置完之后并没有看到什么变化,估计是本地虚拟机的原因吧

    5,chrony和ntp的区别?

    关于chrony我的了解不多,只知道chrony是centos7支持的一个据说比ntp更高效的时间同步工具。

    6,adjtimex和时钟的几个概念tick,freq,ppm?

    tick 代表的是内核时钟计数间隔(微秒)

    freq 系统时钟偏移量

    ppm 查阅相关文档解释的是parts-per-million(PPM),即每百万分之1

    7,Linux上夏令时是什么?夏令时到了我们需要做什么吗?

    下面来一段夏令时的历史背景:

    1986年4月,中央有关部门发出“在全国范围内实行夏时制的通知”,具体作法是:每年从四月中旬第一个星期日的凌晨2时整(北京时间),将时钟拨快一小时,即将表针由2时拨至3时,夏令时开始;到九月中旬第一个星期日的凌晨2时整(北京夏令时),再将时钟拨回一小时,即将表针由2时拨至1时,夏令时结束。从1986年到1991年的六个年度,除1986年因是实行夏时制的第一年,从5月4日开始到9月14日结束外,其它年份均按规定的时段施行。在夏令时开始和结束前几天,新闻媒体均刊登有关部门的通告。1992年起,夏令时暂停实行。

    夏令时是由于地球自转不规律引起的,而且这种自转每年都在发生变化,此处省略物理课内容n多字。

    夏令时到了我们不需要做什么,但是我们的网络世界就不一样了,对于分秒必究的一些应用服务器那我们应该做些什么呢?

    答案是:什么也不用做!因为linux开发者早就为我们解决了这一切。

    8,NTP问题排查常见工具有ntpstat ntptime ntpq ntpdc 等等,使用方法就不赘述了,细讲可以讲一整个博客。

  • 相关阅读:
    Web中的通配符
    EJB版本
    package-info.java
    dynamic web module version
    深入解析和反思携程宕机事件
    Ubuntu 环境下使用cronolog 切割Tomcat日志
    ubuntu环境下cassandra安装配置
    zabbix自定义触发器语法
    zabbix系统邮件告警Python脚本
    Ubuntu14.04下zabbix2.4.5 源码编译安装
  • 原文地址:https://www.cnblogs.com/sonwnja/p/6776095.html
Copyright © 2011-2022 走看看