configurar check change linux ubuntu timing

linux - check - set time ubuntu



¿Cuál es la diferencia entre CLOCK_MONOTONIC y CLOCK_MONOTONIC_RAW? (2)

De acuerdo con la página man de Linux bajo Ubuntu

CLOCK_MONOTONIC Clock that cannot be set and represents monotonic time since some unspecified starting point. CLOCK_MONOTONIC_RAW (since Linux 2.6.28; Linux-specific) Similar to CLOCK_MONOTONIC, but provides access to a raw hard‐ ware-based time that is not subject to NTP adjustments.

De acuerdo con el diccionario en línea webster Monotonic significa:

2: tener la propiedad de nunca aumentar o nunca disminuir a medida que aumentan los valores de la variable independiente o los subíndices de los términos.

En otras palabras, no saltará hacia atrás. Puedo ver que esto sería una propiedad importante si estuvieras sincronizando algún código.

Sin embargo, la diferencia entre la versión normal y la versión en bruto no está clara. ¿Alguien puede arrojar algo de luz sobre cómo el NTP aún puede afectar a CLOCK_MONOTONIC?


CLOCK_MONOTONIC nunca experimenta discontinuidades debido a ajustes de tiempo de NTP, pero cambia en frecuencia a medida que NTP aprende qué error existe entre el oscilador local y los servidores ascendentes.

CLOCK_MONOTONIC_RAW es simplemente el oscilador local, no disciplinado por NTP. Esto podría ser muy útil si desea implementar algún otro algoritmo de sincronización de tiempo contra un reloj que no está luchando contra usted debido a NTP. Mientras que ntpd (la implementación de referencia del protocolo NTP y el daemon NTP más extendido) tiene fama de ser "suave" con los ajustes de tiempo, es más exacto decir que es suave con el tiempo absoluto. Está dispuesto a mover el reloj en 500ppm, lo cual es bastante dramático si estás en posición de medir tu frecuencia de reloj contra algún otro estándar.

La utilidad de CLOCK_MONOTONIC_RAW va a estar limitada hasta que instalaciones como pthread_timedwait_monotonic ofrezcan una opción para usar esa base de tiempo.


ntpd no causa el tiempo para saltar si la diferencia está por debajo de un cierto umbral. En su lugar, se utiliza el ajuste parecido a ajuste de tiempo, lo que afecta tanto a CLOCK_MONOTONIC como a CLOCK_REALTIME (pero no a CLOCK_MONOTONIC_RAW , aparentemente).