Cuando ciertos programas relacionados con el tiempo (como ntpd
) se ejecutan en un sistema Linux, el kernel cambiará al llamado "modo de once minutos" (vea la hwclock
página del manual) mediante el cual actualizará automáticamente el reloj del hardware del reloj del sistema cada once minutos .
En SLES11, he determinado empíricamente que si configuro el reloj del hardware para que esté a unas 10 horas del reloj del sistema, el modo de 11 minutos parece incapaz de hacer que el reloj del hardware coincida con el reloj del sistema. Pero si configuro el reloj de hardware 5 minutos detrás del reloj del sistema, el modo de 11 minutos hace una combinación perfecta.
Entonces, aparentemente hay alguna actualización máxima que el modo de 11 minutos puede manejar y me pregunto qué es.
Actualizar:
Esto es raro ...
Más experimentación muestra que cuando tengo el reloj HW alrededor de 20 minutos detrás del reloj del sistema, el modo de 11 minutos establecerá que el reloj HW esté exactamente 30 minutos detrás del reloj del sistema (!):
# 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
Actualizar:
Me encontré con esto: https://bugs.archlinux.org/task/27408, lo que implica que, para bien o para mal, el núcleo no actualizará el reloj del hardware cuando la hora del reloj del hardware está demasiado lejos de la hora del reloj del sistema.
Respuestas:
Desde la
hwclock
página del manual en RHEL 4.6:Entonces, en virtud de que corres,
hwclock --set
es probable que lo hayas apagado. De la misma manera, puede verificar la salida deladjtimex --print
para confirmar.fuente
hwclock --set
no toca la hora del sistema. Y cuando lo hagaadjtimex --print
, que confirma que el modo de 11 min en el puesto que el "64" es de hecho poco apagado.if((status & (1<<6)) == 0)
entonces el modo de 11 minutos está activado.sync_cmos_clock
functionDe hecho, esto no tiene nada que ver con el modo de once minutos en el núcleo. Esto está relacionado con una función en ntpd.
¿Conoces el llamado límite de cordura de ntp? Si el tiempo está muy lejos (por ejemplo, 10 horas), ntpd se da por vencido y no sesga el reloj. En esos casos, ntpd o ntpdate deben ejecutarse manualmente. La opción Ntpd de
-g
debería hacer eso. Verifique la información de la página del manual:http://doc.ntp.org/4.1.0/ntpd.htm
fuente
ntpd
ya se está ejecutando con la-g
opción.Kernel no sincronizará la hora si está apagada más de 60 minutos en modo de once minutos. Este es un problema común en SUSE Enterprise, consulte este artículo de Open SUSE para obtener más detalles: https://lists.opensuse.org/opensuse-bugs/2011-06/msg01348.html
fuente