Por que a sincronização do relógio nos servidores é difícil?

1

Veja: Qualidade de sincronização do relógio no Windows Azure?

Isso não é um desabafo, é apenas curiosidade.

Um computador está realmente flutuando mais de um segundo em um único dia? Eu mal posso imaginar isso.

Por que não sincronizar todos os dias com um servidor de horário? Isso deve ter um impacto negativo mínimo em comparação com as vantagens de um relógio (relativo) consistente entre os servidores.

Minha intuição seria de que o maior problema seria a latência, mas mesmo isso seria apenas algumas ms após cada sincronização. O que estou perdendo?

    
por Dirk Boer 01.02.2015 / 10:57

1 resposta

6

Is a computer really drifting more than a second in a single day? I can barely imagine that.

Sim, alguns fazem. Especialmente em ambientes virtualizados. Executar dentro de uma máquina virtual (como é o caso no Azure) invalida algumas suposições fundamentais que são usadas para manter o tempo, tornando ainda mais difícil do que no hardware físico. Um computador moderno é muito mais complexo do que um relógio digital.

Why not a sync every day to a time server. This should have minimal negative impact compared to the advantages of a (relative) consistent clock among servers.

Isso é o que as pessoas fazem. É chamado de NTP , mas mesmo isso é mais difícil do que você imagina, já que alguns serviços precisam tempo contínuo de modo que o tempo de salto para frente ou para trás para ajustar um relógio não seja aceitável e você acaba diminuindo a velocidade ou acelerando o relógio do sistema, o que leva tempo.

My gut feeling would be that the biggest problem would be latency, but even that would be just a few ms after every sync.

O NTP tenta ajustar a latência já e há variantes aprimoradas com latência ainda menor.

    
por 01.02.2015 / 11:19