En varias plataformas de producción hemos observado síntomas que parecen sugerir que la hora del reloj se adelanta o retrocede periódicamente. Los saltos son típicamente alrededor de 1 segundo, típicamente se cancelan (saltan hacia adelante y luego hacia atrás muy poco después) y ocurren alrededor de 50 veces por día. Esta deriva es más notable durante los momentos de mayor uso de la aplicación y durante los períodos de altas operaciones de E / S de disco, como las copias de seguridad diarias. Estas derivaciones están afectando nuestra aplicación sensible en tiempo real.
Los sistemas son servidores Oracle Netra X4250 y Netra X4270 que ejecutan SLES 11SP2 con el kernel 3.0.58-0.6.6 predeterminado.
$ cat /sys/devices/system/clocksource/clocksource0/available_clocksource
tsc hpet acpi_pm
$ cat /sys/devices/system/clocksource/clocksource0/current_clocksource
tsc
Hemos deshabilitado NTP , pero eso no ha tenido ningún efecto en las derivas. ¿Existen herramientas que miden la deriva del reloj de la hora del día? ¿Cómo podemos evitar esto?
Estas son plataformas de producción, y no podemos recrear el problema en nuestros laboratorios, por lo que mi capacidad de experimentar es limitada. Si lo dejo en mis propios dispositivos, escribiré una herramienta para medir la deriva y tal vez experimentaré con una fuente de reloj HPET .
ntpdate(8)
ontpd(8)
).Respuestas:
Las únicas herramientas que conozco son las herramientas NTP que deberían ser suficientes. No tiene que configurar realmente ntpd para sincronizar con una fuente de reloj dada, solo puede usar la
-d
opciónntpdate
para obtener el desplazamiento calculado.Ejemplo:
-d
es la opción de depuración que hace que el NTP funcione sin tocar realmente el reloj del sistema.No estoy demasiado sorprendido de que no pueda reproducir esto en entornos de desarrollo / prueba, ya que probablemente se deba al reloj del hardware. Si tiene soporte de hardware con alguien, trataría de reparar sus máquinas. Una posibilidad es cambiar una de las máquinas de desarrollo por esta máquina de producción, arreglar los sistemas PROD anteriores y reintroducirla como una máquina de desarrollo para reemplazar la que está en PROD ahora.
Aparte de eso, cambiar la fuente del reloj de hardware es todo lo que puede hacer. Si no puedes o no puedes hacer el intercambio, te sugiero que hagas la ruta hpet. Puede probar si el cambio en la fuente del reloj se complica con los servicios del sistema y luego implementarlo en producción como granizo.
fuente
tsc
está basado en la CPU, por lo que tiene sentido que una mayor actividad de la CPU desencadene un problema con el reloj del hardware de todos modos. Si hpet es lo suficientemente rápido para ti, entonces es posible que solo tengas que intentarlo, recibir servicio o hacer el intercambio. Esas son las únicas opciones que puedo ver por ti.Una solución es usar
HPET
Ver también Temporizador de eventos de alta precisión
Para configurarlo como parámetro de arranque, use
En hardware antiguo, a
TSC
menudo era inestable y el núcleo lo deshabilitaba.fuente
Escribí una herramienta más detallada para correlacionar las mediciones del reloj con los síntomas de latencia exhibidos por nuestra aplicación. Esta herramienta parece descartar lo que sospeché anteriormente como jitter en el reloj de la hora del día de Linux.
En resumen, mi hipótesis inicial era inválida. Pero aprendí mucho sobre los relojes Linux a partir de las respuestas y los enlaces, ¡así que gracias a todos los que respondieron!
fuente
¿No se supone que el reloj es monótono a menos que alguien lo cambie? Los saltos hacia atrás no deberían ser posibles. Debe haber algo que ajuste el reloj: un trabajo cron o algún otro demonio (por ejemplo, una llamada a
hwclock --adjust
). Recuerdo que ntp en sí actualiza las estadísticas de deriva y lo compensa de forma rutinaria y si no ejecuta ntp durante mucho tiempo y obtiene un gran desplazamiento, desordenará el tiempo durante días después de no restablecerlo/etc/adjtime
. Es posible que tenga algo así, algo que reajusta periódicamente la deriva del tiempo (y causa saltos).ntp
en realidad está destinado a contrarrestar este problema.fuente