¿Por qué el tiempo de inactividad de mi servidor EC2 es de ~ 10 segundos todos los días?

12

Tengo lo que creo que es un archivo del sistema, /etc/cron.daily/ntpupdateque se ejecuta
ntpdate ntp.ubuntu.comdiariamente 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.4significa, pero estoy bastante seguro de -12.646804 secque 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!

cwd
fuente
91.189.94.4 es la dirección IP de ntp.ubuntu.com
Michael Mrozek
siga este enlace. Su problema será resuelto. Ayudó a resolver el mismo problema docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Respuestas:

13

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 ntupdatea favor de ntpd. El nombre del paquete está ntpen 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 mismos ntpdateusos de protocolo , excepto que ntpdmonitorea el tiempo continuamente.

Si no desea la sobrecarga (muy pequeña) de ntpd, puede considerar ejecutar ntpdateuna vez por hora. Asumiendo que tiene 0.5s de descuento cada hora, eso debería ser suficiente.

Alexios
fuente
3
Los problemas de la máquina virtual también se pueden resolver en gran medida ejecutando un kernel sin tick (CONFIG_NO_HZ). No estoy seguro de si esto es posible con ubuntu kernel, o si tendría que construir el suyo propio.
Patrick
1
Acabo de comprobar la configuración del kernel en una instalación de Ubuntu 11 (3.0.0-14-generic), y definitivamente se ha CONFIG_NO_HZhabilitado.
Alexios
0

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).

Brooks Moses
fuente
-1

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.

Patkos Csaba
fuente
3
Esto no es verdad. Por el contrario, NTP intenta reducir la diferencia tanto como sea posible. Hay un umbral en la otra dirección: NTP no actualizará el reloj si la diferencia es demasiado grande (sospecha una configuración incorrecta, por ejemplo, una zona horaria incorrecta).
Gilles 'SO- deja de ser malvado'