2 votos

ntpd: sistemáticamente la hora incorrecta en mediados de 2013, el MacBook Air

Estoy utilizando ICMP de sellado de tiempo en mi mediados de 2013, el MacBook Air, y necesito mi reloj para tener una precisión no es peor que la de 1ms.

Veo que ntpd está en ejecución, con la configuración predeterminada, y /etc/ntp.conf contiene sólo una línea, server time.apple.com, sin ningún comentario.

Sin embargo, si me quedo ntpdate -d time.apple.com (o ntpdate -d ntp1.yycix.ca, el cual se produce el mismo desplazamiento de la lectura para cualquier momento dado, como time.apple.com granja), siempre como un usuario no-root, yo estoy a menudo en llegar la lectura de que mi reloj es compensado por tanto como 6ms, o, más a menudo alrededor de 4ms (a veces 0ms, pero muy rara vez).

¿Por qué está sucediendo esto? Ni siquiera estoy reiniciando mi MacBook, funciona 24/7, enchufado, ¿por qué es su ntpd no mantener el tiempo correctamente?

Syslog tiene las siguientes:

% syslog | fgrep ntp | fgrep -v sudo | tail
Nov 19 12:59:30 mba.cnst ntpd[86861] <Notice>: proto: precision = 1.000 usec

Última vez que lo comprobé, 1.000 usec no es peor que el 1 de nosotros, que es de 0,001 ms, o 0.000001 s; ¿por qué se afirma que la precisión es de 0,001 ms, cuando en realidad el reloj es compensado por tanto como 6ms?

2voto

user37893 Puntos 41

El server palabra clave de ntp.conf(5) parecen configurar un único servidor, incluso si el nombre de host proporcionado resuelve a más de una dirección IP.

Parece que el servidor específico que estaba siendo seleccionado es un punto de venta.

mba: {4899} ntpdc -s ; ntpdc -sn
     remote           local      st poll reach  delay   offset    disp
=======================================================================
*time.apple.com  129.xx.xxx.xxx   2 4096  377 0.07106  0.000248 0.24763
     remote           local      st poll reach  delay   offset    disp
=======================================================================
*17.151.16.22    129.xx.xxx.xxx   2 4096  377 0.07106  0.000248 0.24763
mba: {4900} ntpdate -d 17.151.16.22 |& tail -1 ; \
?           ntpdate -d time.apple.com |& tail -1 ; \
?           ntpdate -d ntp1.yycix.ca |& tail -1
26 Nov 01:49:13 ntpdate[97738]: adjust time server 17.151.16.22 offset -0.000318 sec
26 Nov 01:49:16 ntpdate[97740]: adjust time server 17.171.4.15 offset -0.006493 sec
26 Nov 01:49:16 ntpdate[97742]: adjust time server 192.75.191.6 offset -0.006443 sec
mba: {4901}

Ir a Preferencias de Fecha Y Hora, y proporcionar una lista separada por comas de los servidores NTP parece solucionar el problema.

Proporcionar una lista separada por comas en la GUI resultados en varios server entradas en /etc/ntp.conf, aunque usted tiene que asegurarse de que los nombres de host en sí son diferentes (de lo contrario, la persistencia de los nombres de host no resultado en cualquier extra servidores actuales de ser seleccionado, como por ntpq -p).

mba: {5104} cat /etc/ntp.conf
server ntp1.yycix.ca
server time.nist.gov
server tick.usask.ca
server tock.usask.ca
server clock.nyc.he.net
mba: {5105} ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp1.yycix.ca   .GPS.            1 u  138  512  377   56.517   -0.662   0.319
-2610:20:6f15:15 .ACTS.           1 u  117  512  377   27.975   -1.774   0.989
+tick.usask.ca   .GPS.            1 u  456  512  377   31.388   -0.636   0.135
*tock.usask.ca   .GPS.            1 u  124  512  377   31.486   -0.864   0.413
-clock.nyc.he.ne .CDMA.           1 u  139  512  377   26.860   -2.161   0.194
mba: {5106}

Una lista de los servidores está disponible en http://support.ntp.org/servers; usted tiene que tratar de seleccionar a los servidores que están cerca de usted, en particular, no sólo geográficamente, sino de la red de sabio.

1voto

Oskar Puntos 1242

Los últimos procesadores tienen algunos bastante avanzados de reloj de CPU de la tasa de cambio que podría hacer un tiempo de mantener un algoritmo como ntpd estar fuera de 10 ms o más, incluso si usted tiene la configuración óptima y una adecuada deriva de archivo. Añadir a que la Aplicación de la Siesta, temporizador coalescente y otros de la eficiencia de los cambios a Mavericks y no me sorprendería si algunos de los afectados de cronometraje como se ve por un proceso que se ejecuta en la CPU.

Ahora, el individuo reloj que tienes en tu Mac no se preocupa realmente por la CPU de temporización y el sueño, pero el proceso que corrige a una fuente externa posible.

Mi entendimiento es que el mensaje de depuración es un internamente la tasa de limitación de número en la ntpd código de comprobación de cómo de rápido se ejecuta la CPU, y no un informe, que en realidad 1.000 usec de la realidad o, incluso, algunos externos fuente de referencia.

Vea los comentarios sobre el procedimiento de default_get_precision(void) , donde se establece:

/*
 * This routine calculates the system precision, defined as the minimum
 * of a sequence of differences between successive readings of the
 * system clock. However, if the system clock can be read more than once
 * during a tick interval, the difference can be zero or one LSB unit,
 * where the LSB corresponds to one nanosecond or one microsecond.
 * Conceivably, if some other process preempts this one and reads the
 * clock, the difference can be more than one LSB unit.
 *
 * For hardware clock frequencies of 10 MHz or less, we assume the
 * logical clock advances only at the hardware clock tick. For higher
 * frequencies, we assume the logical clock can advance no more than 100
 * nanoseconds between ticks.
 */

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X