Tengo lo que creo que es un archivo del sistema, /etc/cron.daily/ntpupdate
que se ejecuta
ntpdate ntp.ubuntu.com
diariamente para sincronizarse con la hora de la red. Todos los días genera resultados muy similares a esto:
/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec
No estoy seguro de lo que 91.189.94.4
significa, pero estoy bastante seguro de -12.646804 sec
que mi servidor está apagado por alrededor de 12 segundos. Pero no sé por qué está apagado aproximadamente la misma cantidad todos los días. Esta es una instancia de Amazon EC2 que ejecuta Ubuntu.
Solo puedo adivinar que está perdiendo / ganando 12 segundos por día, o algo más está sincronizando la hora con otro reloj que está apagado por 12 segundos y luego lo vuelvo a sincronizar.
¿Qué debo hacer para intentar rastrear esto más? No veo ningún otro trabajo cron en los /etc/cron.*
directorios o en los trabajos cron de los usuarios ...
ACTUALIZAR
Solo pensé en compartir que comencé a correr esta hora para ver si habría un gran salto a una hora determinada. Esto es lo que es la salida por hora:
16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec
Aparentemente, cada hora el reloj está apagado alrededor de medio segundo, por lo que tiene sentido que cada día (24 horas) el reloj esté apagado alrededor de 12 segundos. ¡Supongo que el reloj solo corre rápido! ¡Gracias!
Respuestas:
Hay varios factores que pueden hacer que un reloj de software funcione lento o rápido. Los relojes en servidores virtuales son especialmente propensos a toda una clase de estos problemas. ¡12 segundos al día es bastante malo hasta que te encuentras con cajas virtuales con relojes que funcionan a 180–200% de velocidad! Los relojes en las computadoras portátiles que se suspenden también pueden sufrir problemas de cronometraje.
Deberías considerar caer
ntupdate
a favor dentpd
. El nombre del paquete estántp
en Debian (y presumiblemente Ubuntu también). El demonio NTP mantiene su tiempo sincronizado de manera mucho más proactiva que un trabajo cron, sincronizándose con uno o más servidores NTP y manteniendo su reloj mucho más preciso. Es otra implementación de los mismosntpdate
usos de protocolo , excepto quentpd
monitorea el tiempo continuamente.Si no desea la sobrecarga (muy pequeña) de
ntpd
, puede considerar ejecutarntpdate
una vez por hora. Asumiendo que tiene 0.5s de descuento cada hora, eso debería ser suficiente.fuente
CONFIG_NO_HZ
habilitado.Respondiendo a la otra mitad de su pregunta, sobre por qué está sucediendo esto: los relojes de hardware de computadora son notoriamente inexactos, por lo que si bien una deriva de 12 segundos en un día es inusual, en realidad no es tan inusual.
(Esto probablemente se deba a la prevalencia del uso del tiempo de la red, por lo que una deriva de incluso 12 segundos al día es una molestia menor en comparación con lo que sería en un reloj, y por lo tanto las compañías de hardware pueden usar chips de reloj baratos. Físicamente, lo que está sucediendo es probablemente que el oscilador en su chip de reloj no está calibrado del todo bien, por lo que funciona lento pero confiablemente lento).
fuente
Sospecho que ntp no actualiza la hora de su servidor porque la diferencia es demasiado pequeña. Tuve un problema similar, vi el mismo retraso todos los días, hasta que descubrí que, siendo una pequeña diferencia, ntp no se actualizaría hasta que haya un umbral específico presente.
Verifique su configuración para el umbral mínimo de sincronización.
fuente