O NTPD pode ajustar seu relógio em incrementos lentos se estiver desligado, girar o relógio. A ideia por trás disso é que os passos lentos não causam problemas com temporizadores de software, lacunas estranhas em arquivos de log e seus dados, etc.
The maximum slew rate possible is limited to 500 parts-per-million (PPM) by the Unix kernel. As a result, the clock can take 2000s for each second the clock is outside the acceptable range.
De acordo com a página de manual, o ntpd não funcionará se o seu relógio estiver com mais de 1000 segundos de diferença. (Embora você possa ajustar isso com o interruptor -g , compensar lentamente um deslocamento de 1000 segundos já levará mais de 3 semanas.)
Segundo, o salto de tempo que você observou quando iniciou ntpd
é o resultado do comportamento padrão do ntpd para step ao invés de girar o clock quando o offset é maior que 128 ms quando o ntpd é iniciado. Isso faz sentido quando o ntpd é iniciado na inicialização, mas não é exatamente o que você quer em um sistema em execução.
Você pode evitar isso adicionando a opção -x
às opções de inicialização do ntpd. Do manual:
-x
Normally, the time is slewed if the offset is less than the step threshold, which is 128 ms by default, and stepped if above the threshold. This option sets the threshold to 600 s, which is well within the accuracy window to set the clock manually. Note: Since the slew rate of typical Unix kernels is limited to 0.5 ms/s, each second of adjustment requires an amortization interval of 2000 s Thus, an adjustment as much as 600 s will take almost 14 days to complete. This option can be used with the -g and -q options
Nos sistemas RHEL, seria necessário ajustar o arquivo /etc/sysconfig/ntpd
config antes de iniciar o serviço ntpd:
# /etc/sysconfig/ntpd
# Drop root to id 'ntp:ntp' by default.
OPTIONS="-u ntp:ntp -p /var/run/ntpd.pid -g -x"