Quanto tempo o NTP demorará para ajustar o relógio se ele não for configurado imediatamente?

4

Estou usando o SNTP para sincronizar meu sistema baseado em Debian. O SNTP tem duas maneiras de acertar o relógio:

-s, --settod     Set (step) the time with settimeofday().
-j, --adjtime    Set (slew) the time with adjtime().

O método de giro ajusta o relógio do sistema local em pequenos passos até que o deslocamento detectado seja zero. O giro é feito principalmente para não perturbar os processos que reagem mal a um relógio atrasado no tempo.

O método step ajusta o relógio instantaneamente.

Com relação ao tempo, quanto tempo a SNTP poderia levar para concluir isso?

Existe uma maneira de pesquisar o sistema e me dar feedback de que uma mudança ainda está em andamento?

    
por captcha 19.01.2015 / 05:22

2 respostas

2

The step method sets the clock instantly. How long could SNTP take to complete slewing?

Não tenho experiência com soluções NTP S , portanto, suponha que elas não sejam diferentes do NTP completo neste aspecto. Quanto ao primeiro, ele usa dois limites turnkey: 128 ms para stepping e 500 ppm (496 a 512 ppm) para bloqueio e giro. Isso significa que o deslocamento máximo permitido de 128 ms será compensado na taxa máxima de giro de 512 ppm em questão de 250 segundos (4,17 minutos). Na prática, no entanto, isso provavelmente levará um pouco mais de tempo, já que a taxa de giro é gradualmente reduzida quando se aproxima do tempo-alvo - até a taxa de correção regular computada.

Is there a way to poll the system and give me feedback that a slew is still in progress?

Experimente o utilitário% stockntptime: ele consulta o kernel diretamente e funciona mesmo quando ntpd não está em execução. Isto é, é claro, desde que adjtime() chame ntp_adjtime() internamente, o que eu não tenho certeza.

    
por 06.03.2015 / 16:50
1
man adjtime

.
.
.

If the adjustment in delta  is  positive,  then  the  system  clock  is
speeded  up by some small percentage (i.e., by adding a small amount of
time to the clock value in each second) until the adjustment  has  been
completed.   If  the adjustment in delta is negative, then the clock is
slowed down in a similar fashion.

Assim, o kernel gerenciará o ajuste de tempo a cada segundo, e o tamanho do ajuste dependerá do tamanho dos valores passados na chamada struct passada para a adjtime(3) . Um ponto de interesse é que o Linux usa adjtimex(3) , que é baseado em RFC1305 (NTP versão 3), e a seção 5 entra nos detalhes de como esse desvio temporal é gerenciado.

    
por 19.01.2015 / 07:28

Tags