Eu tenho o que acredito ser um arquivo do sistema, /etc/cron.daily/ntpupdate
que é executado
ntpdate ntp.ubuntu.com
diariamente para sincronizar com o horário da rede. Todos os dias gera uma saída muito semelhante a esta:
/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec
Não sei o que isso 91.189.94.4
significa, mas tenho certeza de -12.646804 sec
que meu servidor está desligado em cerca de 12 segundos. Mas eu não sei por que isso ocorre cerca da mesma quantia todos os dias. Esta é uma instância do Amazon EC2 executando o Ubuntu.
Só posso adivinhar que ele está perdendo / ganhando 12 segundos por dia ou outra coisa está sincronizando a hora com outro relógio que está desativado por 12 segundos e depois estou re-sincronizando.
O que devo fazer para tentar rastrear isso ainda mais? Não vejo outros trabalhos cron nos /etc/cron.*
diretórios ou nos trabalhos cron dos usuários ...
ATUALIZAR
Apenas pensei em compartilhar que comecei a correr a cada hora para ver se haveria um grande salto a uma determinada hora. É assim que a produção horária é:
16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec
Aparentemente, a cada hora o relógio está desligado em cerca de meio segundo, de modo que faz sentido que a cada dia (24 horas) o relógio esteja desligado em cerca de 12 segundos. Acho que o relógio está correndo rápido! Obrigado!
Respostas:
Existem vários fatores que podem fazer com que o relógio do software funcione devagar ou mais rápido. Relógios em servidores virtuais são especialmente propensos a toda uma classe desses problemas. 12 segundos por dia é muito ruim até você encontrar caixas virtuais com relógios que funcionam a uma velocidade de 180 a 200%! Relógios em laptops suspensos também podem sofrer problemas de manutenção do tempo.
Você deve considerar cair
ntupdate
em favor dentpd
. O nome do pacote estántp
no Debian (e provavelmente no Ubuntu também). O daemon NTP mantém seu tempo sincronizado de maneira muito mais proativa que uma tarefa cron, sincronizando com um ou mais outros servidores NTP e mantendo seu relógio muito mais preciso. É outra implementação do mesmo protocolontpdate
usado, excetontpd
monitora o tempo continuamente.Se você não deseja a sobrecarga (muito pequena)
ntpd
, considere executarntpdate
uma vez por hora. Supondo que você esteja com 0,5s de folga a cada hora, isso deve ser suficiente.fonte
CONFIG_NO_HZ
ativada.Respondendo à outra metade da sua pergunta, sobre por que isso está acontecendo: os relógios de hardware de computador são notoriamente imprecisos; portanto, embora um desvio de 12 segundos em um dia seja incomum, não é realmente tão incomum.
(Isso provavelmente ocorre devido à prevalência do uso do tempo da rede, de modo que um desvio de até 12 segundos por dia é um aborrecimento menor comparado ao que seria em um relógio - e, portanto, as empresas de hardware podem usar chips de relógio baratos. Fisicamente, o que está acontecendo é provavelmente que o oscilador do seu chip de relógio não está calibrado corretamente, por isso é um pouco lento, mas confiável.)
fonte
Suspeito que o ntp não atualize o horário do servidor porque a diferença é muito pequena. Eu tive um problema semelhante, vi o mesmo atraso todos os dias, até descobrir que haver uma pequena diferença de ntp não seria atualizada até que um limite específico estivesse presente.
Verifique sua configuração para o limite mínimo de sincronização.
fonte