¿Qué podría hacer que el reloj salte 5 minutos?

8

Tengo una caja (física) que ejecuta un Ubuntu despojado; De vez en cuando (6 veces en 3 meses), el reloj salta hacia atrás exactamente 300 segundos (+ - 0.01 segundos; siempre exactamente 300 segundos). Sucede de un minuto a otro (tengo una máquina externa que lo sondea una vez por minuto).

La caja está ejecutando 2.6.26-generic (kernel compilado personalizado), Ubuntu 9.04 (lo sé, estoy tratando de actualizarlo, pero está semi-incrustado). No hay nada en los registros que indique lo que sucedió, y tengo una gran selección de servidores ntp pool.ntp.org, que corrigen el problema después de un tiempo.

¿Alguien sabe lo que podría ser la causa?

Adicional 1:

También tengo una serie de otras cajas que ejecutan el mismo kernel (binario idéntico) y pequeñas variaciones del mismo software, que no tienen este problema. También he cambiado el hardware.

Adicional 2 (resumen de mis comentarios individuales):

  • Sé que 9.04 está desactualizado, estoy de acuerdo en que debe actualizarse, y esta decisión está fuera de mi control. Porque la gerencia.
  • He probado una gran cantidad de servidores ntp y una pequeña cantidad. Todavía sucede en ambos casos; si tengo una gran cantidad de servidores ntp, entonces se arregla más rápido.
  • He cambiado el hardware
  • Estoy usando el mismo kernel / sistema operativo en otra caja (con hardware idéntico), que no muestra el problema.
  • Reiniciar no ha ayudado. (Este problema ha estado en curso durante aproximadamente 6 meses)
  • El tiempo de actividad es de aproximadamente 3 meses. El cuadro está "siempre encendido", ejecutando un PBX (asterisco).
  • En este momento, el hwclock coincide exactamente con el reloj del software: 0.000000 segundos
  • No he podido encontrar ningún trabajo cron que lea el reloj del hardware.
  • No hay un patrón relacionado con la carga (aunque la carga es bastante baja de todos modos).
  • Sucede durante el día y la noche.
  • No sucede a intervalos regulares. De los de los últimos 3 meses, la mitad ha sucedido en los últimos 9 días.
  • Esto no es "deriva": el 99% del tiempo, está dentro de una pequeña fracción de segundo, luego, de un minuto al siguiente, salta EXACTAMENTE 300 segundos, hacia atrás. Entonces, un minuto podría decir que son las 3:07:03, haciendo coincidir mi otra computadora con 1 microsegundo, 60 segundos después, dice 3:04:03.
  • No puedo encontrar nada en los registros.
AMADANON Inc.
fuente
1
Ubuntu 9.04 está más allá del final de la vida útil, y si está ejecutando un núcleo personalizado además, el soporte será limitado en el mejor de los casos. Un sistema semi-embebido agrega otra capa de complejidad.
Panther
1
oye, si fuera una pregunta fácil, ya la habría solucionado :)
AMADANON Inc.
Intente reducir su número de servidores ntp para decir 3, use los geográficamente cercanos a usted con buena conectividad.
Panther
Buena idea, lo he intentado. La única diferencia era que, con menos fuentes de ntp, ntpd hacía menos consultas y tardaba más en volver a la normalidad.
AMADANON Inc.
Bueno, no es ntp, que deja su kernel o hardware personalizado por proceso de eliminación.
Panther

Respuestas:

1

Esto suena como un reloj de tiempo real (RTC) que falla. Si se trata de hardware de repuesto, puede confirmar el problema ejecutando un sistema operativo diferente, como arrancar un CD de Linux en vivo o un arranque PXE, y ver si puede replicar la falla. Si se produce un sesgo exacto al mismo tiempo en otro sistema operativo, entonces ha confirmado que el problema es una falla de hardware.

Suponiendo que es el RTC, puede probar las siguientes soluciones en orden de gravedad.

  • Reemplace la batería CMOS. Puede intentar confirmar si se trata de una batería defectuosa probando el voltaje de su antigua batería con un multímetro.
  • Cambiar los RTC. Si tiene suerte y tiene una placa base elegante, puede tener dos RTC. Un reloj de alta precisión que se usa por defecto y un RTC estándar. Verifique la configuración del BIOS / EFI y vea si puede cambiar al RTC alternativo para evitar el uso del defectuoso.
  • Intenta reemplazar el RTC. Dependiendo de la edad de su placa base, su RTC probablemente sea una lata de metal o un chip en la placa. Puede intentar reemplazar este componente usted mismo si tiene algunas habilidades en electrónica.
  • Reemplace la placa base, ya que el RTC o algunos de los componentes eléctricos o cables que interactúan con el RTC están fallando.
Michael Yasumoto
fuente
1

Puede ejecutar un script en el cuadro que realiza un seguimiento de los procesos en ejecución y al mismo tiempo controla el reloj. Si el reloj retrocede repentinamente, registra la lista de procesos activos en ese momento. Tal vez eso dé una pista de qué proceso cambia el reloj.

Por supuesto, esto supone que tiene un problema de software. No encontrará nada de esta manera si solo su hardware falla.

/bin/bash

oldTime=$(date +%s)
oldPsOutput=$(ps faux)
while sleep 1
do
  currentTime=$(date +%s)
  currentPsOutput=$(ps faux)
  if [ "$currentTime" -lt "$oldTime" ]  # clock change detected?
  then
    echo '========='
    echo "$currentTime < $oldTime"
    echo "$oldPsOutput"
    echo ':::::::::'
    echo "$currentPsOutput"
  fi >> /tmp/clockChangeDetector.log
  oldPsOutput=$currentPsOutput
  oldTime=$currentTime
done
Alfe
fuente
0

La respuesta de Michael Yasumoto parece cubrir todas las bases: estoy de acuerdo en que probablemente esté buscando hardware inestable, pero esta es una idea práctica: use una máquina confiable con muy buena conectividad interna que tenga un puñado de ciclos de sobra para ejecutar un Servidor NTP, y luego haga " lo que sea necesario " para hacer que el cliente NTP que se ejecuta en la caja PBX incorporada envíe correo no deseado a este servidor NTP local para solicitudes de tiempo con la mayor frecuencia posible (por ejemplo, cada 30 segundos).

Luego, cuando la caja finalmente se actualice, déjelo a un lado debidamente y descubra qué le pasaba en algún momento (TM). :PAGS

i336_
fuente