Por que o tempo do meu servidor EC2 está em ~ 10 segundos todos os dias?

12

Eu tenho o que acredito ser um arquivo do sistema, /etc/cron.daily/ntpupdateque é executado
ntpdate ntp.ubuntu.comdiariamente 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.4significa, mas tenho certeza de -12.646804 secque 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!

cwd
fonte
91.189.94.4 é de ntp.ubuntu.com endereço IP
Michael Mrozek
Siga este link. Seu problema será resolvido. Ajudou a resolver o mesmo problema docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Respostas:

13

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 ntupdateem favor de ntpd. O nome do pacote está ntpno 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 protocolo ntpdateusado, exceto ntpdmonitora o tempo continuamente.

Se você não deseja a sobrecarga (muito pequena) ntpd, considere executar ntpdateuma vez por hora. Supondo que você esteja com 0,5s de folga a cada hora, isso deve ser suficiente.

Alexios
fonte
3
Os problemas da máquina virtual também podem ser amplamente resolvidos com a execução de um kernel sem ticks (CONFIG_NO_HZ). Não tenho certeza se isso é possível com o kernel do ubuntu ou se você teria que criar o seu próprio.
Patrick Patrick
1
Acabei de verificar a configuração do kernel em uma instalação do Ubuntu 11 (3.0.0-14-generic), e ela definitivamente foi CONFIG_NO_HZativada.
Alexios #
0

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.)

Brooks Moses
fonte
-1

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.

Patkos Csaba
fonte
3
Isso não é verdade. Pelo contrário, o NTP tenta reduzir a diferença o máximo possível. Existe um limite na outra direção: o NTP não atualizará o relógio se a diferença for muito grande (suspeita de uma configuração incorreta, por exemplo, fuso horário incorreto).
Gilles 'SO- stop be evil'