GNU/Linux >> Tutoriales Linux >  >> Linux

Linux:¿cómo medir y prevenir la desviación del reloj?

En varias plataformas de producción hemos observado síntomas que parecen sugerir que el reloj de la hora del día salta periódicamente hacia adelante o hacia atrás. Los saltos suelen durar alrededor de 1 segundo, generalmente se cancelan (saltan hacia adelante y luego hacia atrás poco después) y ocurren alrededor de 50 veces al día. Esta desviación es más notoria durante los momentos de uso máximo de aplicaciones y durante los períodos de operaciones de E/S de disco altas, como las copias de seguridad diarias. Estos desvíos están afectando nuestra aplicación suave sensible en tiempo real.

Los sistemas son servidores Oracle Netra X4250 y Netra X4270 que ejecutan SLES 11SP2 con 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. ¿Hay herramientas que miden la desviación 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 para experimentar es limitada. Si lo dejo en mis propios dispositivos, escribiré una herramienta para medir la deriva y tal vez experimente con una fuente de reloj HPET.

Respuesta aceptada:

¿Hay herramientas que miden la desviación del reloj de la hora del día?

Las únicas herramientas que conozco son las herramientas NTP que deberían ser suficientes. En realidad, no tiene que configurar ntpd para sincronizar con una fuente de reloj determinada, solo puede usar -d opción para ntpdate para obtener el desplazamiento calculado.

Ejemplo:

[[email protected] ~]$ ntpdate -d clock.redhat.com 2>/dev/null | egrep "^offset"
offset -0.004545
[[email protected] ~]$

-d es la opción de depuración que hace que el NTP funcione sin tocar el reloj del sistema.

¿Algún consejo sobre cómo podemos evitar esto?

No me sorprende demasiado que no pueda reproducir esto en entornos de desarrollo/prueba, ya que probablemente solo se deba al reloj del hardware. Si tiene soporte de hardware con alguien, trataría de reparar sus máquinas. Una posibilidad es intercambiar una de las máquinas de desarrollo por esta máquina de producción, reparar los sistemas PROD anteriores y volver a introducirla como una máquina de desarrollo para reemplazar la que está en PROD ahora.

Aparte de eso, cambiar la fuente del reloj del hardware es todo lo que puede hacer. Si no puede o no puede hacer el intercambio, le sugiero que siga la ruta hpet. Puede probar si el cambio de la fuente del reloj interfiere con los servicios del sistema y luego implementarlo en producción como un avemaría.

Relacionado:Linux:¿capturar la salida remota localmente en Mac Terminal?
Linux
  1. Cómo administrar y enumerar servicios en Linux

  2. Cómo instalar y probar Ansible en Linux

  3. Cómo instalar y usar Flatpak en Linux

  4. Cómo instalar y usar Traceroute en Linux

  5. Cómo archivar y comprimir archivos en Linux

Cómo instalar y usar PuTTY en Linux

Cómo instalar y usar phpMyAdmin en Linux

Cómo instalar y usar el comando fd en Linux

Cómo instalar y usar Nu Shell en Linux

Cómo configurar la fecha y la hora en Linux

Cómo escribir y ejecutar un programa C en Linux