Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?

前端之家收集整理的这篇文章主要介绍了Linux内核“11分钟模式”可以做的最大的硬件时钟更新是什么?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
当某些与时间相关的程序(如ntpd)在 Linux系统上运行时,内核将切换到所谓的“十一分钟模式”(参见hwclock手册页),它将自动从系统时钟更新硬件时钟十一分钟

在SLES11上,我根据经验确定,如果我将硬件时钟设置为比系统时钟晚10个小时,则11分钟模式似乎无法使硬件时钟与系统时钟匹配.但如果我将硬件时钟设置为落后系统时钟5分钟,则11分钟模式可以完美匹配.

所以显然有11分钟模式可以处理的最大更新,我想知道它是什么.

更新:

这很奇怪……

更多的实验表明,当我的硬件时钟比系统时钟晚了大约20分钟时,11分钟模式会将硬件时钟设置为落后于系统时钟30分钟(!):

# date
Tue Dec  6 10:16:52 EST 2011
# hwclock --set --date "12/6/11 09:56"
#
# date
Tue Dec  6 10:17:16 EST 2011
# hwclock --show
Tue Dec  6 09:56:06 2011  -0.156551 seconds
#
# date
Tue Dec  6 10:23:09 EST 2011
# hwclock --show
Tue Dec  6 10:01:58 2011  -0.535772 seconds
#
# date
Tue Dec  6 10:34:28 EST 2011
# hwclock --show
Tue Dec  6 10:04:27 2011  -0.192025 seconds

更新:

我跑过这个:https://bugs.archlinux.org/task/27408这意味着无论好坏,当硬件时钟与系统时钟时间相差太远时,内核不会更新硬件时钟.

解决方法

从RHEL 4.6上的hwclock手册页:
This mode (we'll call it "11 minute mode") is off until something turns it on.  The ntp
daemon  xntpd  is  one thing  that  turns  it on.  You can turn it off by running
anything,including hwclock --hctosys,that sets the System Time the old fashioned way.

To see if it is on or off,use the command adjtimex --print and look at the value of
"status".  If the "64" bit of this number (expressed in binary) equal to 0,11 minute mode 
is on.  Otherwise,it is off.

所以,凭借你运行hwclock的设置 – 你可能已经将其关闭了.出于同样的原因,您可以检查adjtimex – output的输出以进行确认.

猜你在找的Linux相关文章