Quão longe está "muito longe" para o ntpd? Pode chegar lá com um salto repentino para carga pesada? Isso pode ser substituído?

21

Em muitos primers no ntpd, como este , sempre há um aviso de que o ntpd para de reiniciar o relógio "[se] seu relógio estiver muito atrasado".

Quão longe está "muito longe"?

Além disso, se um servidor pular repentinamente para uma carga pesada, por exemplo, da ociosidade total para 100% da CPU, o aumento da temperatura fará com que o relógio se incline para "muito longe"?

O ntpd pode ser configurado para redefinir o relógio mesmo se o tempo estiver "muito longe" ou pelo menos tornar "muito longe" um pouco mais?


fonte
How far off is "too far off"?Depende. Quais sistemas operacionais / distros você está usando, especificamente?
HopelessN00b
@ Servidor ubuntu HopelessN00b. Imaginei que seria difícil definir por causa da complexidade do algo, para que eu possa viver com uma figura aproximada.
Todas as suas perguntas são variáveis que podem ser definidas na configuração
Jacob
@ Jacob Obrigado Jacob! Você se importaria de me mostrar onde? Nunca vi nada que ampliasse a faixa de redefinição e tudo o que posso encontrar para uma frequência de sincronização mais alta é o burstque o bane. :/ Muito obrigado antecipadamente!
Eu não acho que a carga ou a temperatura da CPU deva afetar o relógio. Todos os timers em um computador típico vêm de um oscilador que, até onde eu sei, está fora do pacote da CPU e não é afetado por nada que a CPU esteja fazendo.
Node Eldredge

Respostas:

19

Primeiro, a diferença máxima padrão é 1000s, como outros já mencionaram. Como @kyle afirmou, você pode usar a -gbandeira para ignorar esta ÚNICA vez apenas para ajustar o relógio inicialmente.

Depois disso, você realmente não deverá ver o seu relógio flutuando milhares de vezes entre as atualizações, mesmo sob carga alta, e se você realmente precisar substituir o relógio. As configurações na configuração que você precisa são minpolle maxpoll. Isso permitirá que você defina a duração do intervalo para a potência de 2 (por exemplo, 10 significa 2 10 = 1024 s).

Observe que seu sistema provavelmente não será desviado substancialmente, mesmo sob alta carga, e as configurações padrão devem mantê-lo sob controle. Você não deseja bombardear os servidores NTP com atualizações a cada segundo, pois está desperdiçando recursos, pois você será bloqueado e provavelmente uma chamada para o seu ISP NOC. Se você realmente precisa de tempo extremamente preciso, use o GPS ou configure seu próprio servidor NTP.

Jacob
fonte
2
Dependendo do que você faz, os poucos ms que pode ser desviado por dia são "substancialmente" para as pessoas.
PlasmaHH 26/06
2
@PlasmaHH Então eu sugiro utilizar uma fonte de tempo melhor, como GPS.
Jacob
Muito obrigado Jacob! Você sabe qual é o limite de taxa mais comum? Eu gostaria de manter um bom tempo dentro da faixa de 10ms mostrada aqui ntp.org/ntpfaq/NTP-s-algo.htm#Q-ACCURATE-CLOCK sem hardware caro. Muito obrigado antecipadamente!
1
@Gracchus Depende dos servidores NTP individuais e você precisa entrar em contato com eles. Na minha opinião, você está tentando usar o NTP como muleta para algo em que precisa de um tempo altamente preciso. Como tal, você deve usar uma solução melhor (como GPS) para obtê-la, em vez de adicionar carga a um serviço gratuito.
Jacob
3
@ Gabe: Substitua aqui também pode significar adicionar outro relógio ao sistema. Também existem algumas opções para adicionar vários tipos de relógios como cartões pci.
PlasmaHH
12

O NTPD pode ajustar seu relógio em incrementos lentos, se estiver desligado, girando o relógio. A idéia por trás disso é que etapas lentas não causarão problemas com temporizadores de software, lacunas estranhas nos arquivos de log etc.

A taxa máxima de rotação possível é limitada a 500 partes por milhão (PPM) pelo kernel Unix. Como resultado, o relógio pode demorar 2000s por segundo que estiver fora do intervalo aceitável.

De acordo com a página de manual, o ntpd não funcionará se o relógio estiver com mais de 1000 segundos de folga.

Como girar o relógio para ajustá-lo por 1000 segundos levará pelo menos três semanas e, durante esse período, todos os carimbos de data / hora ainda estarão desativados, o que não parece razoável.

O ntpdatecomando possui uma opção -b para simplesmente ajustar o tempo sem girar. Isso é útil nos casos em que o relógio do sistema local se desvia demais da hora "correta".

HBruijn
fonte
9

Isso está especificado em man ntpd, e se você o substituir, poderá estar interessado na -gopção (observe "que é 1000 s por padrão":

-g Normalmente, ntpdsai com uma mensagem no log do sistema se o deslocamento exceder o limite de pânico, que é 1000 s por padrão. Esta opção permite que o tempo seja definido para qualquer valor sem restrição; no entanto, isso pode acontecer apenas uma vez. Se o limite for excedido depois disso, ntpdserá encerrado com uma mensagem no log do sistema. Esta opção pode ser usada com as opções -qe -x. Veja o tinkercomando para outras opções.

Você pode ajustar isso ntpd.conf. Se você deseja desativá-lo, você pode configurá-lo tinker panic 0. Consulte a documentação de Opções diversas para saber mais.

Kyle Brandt
fonte
Perfeito! Finalmente encontrado minpolle maxpoll. Obrigado!
Kyle, isso está errado. Este é um comando único e não abordará problemas futuros. Você também não menciona minpollou maxpoll.
Jacob
1
Para que isso funcione para mim eu tive que usar 'serviço sudo NTP parar' os seguintes passos 'ntpq -gq' e 'sudo serviço NTP iniciar'
Terry Horner