Configurar sistemas de alta precisão

A sincronização de tempo no Windows 10 e no Windows Server 2016 foi substancialmente aprimorada. Em condições operacionais razoáveis, os sistemas podem ser configurados para manter a precisão de 1 ms (milissegundo) ou melhor (com relação ao UTC).

Aviso

O Windows Server 2012 R2 e versões inferiores não podem atender aos mesmos objetivos de alta precisão. Esses sistemas operacionais não têm suporte para alta precisão. Nessas versões, o Serviço de Horário do Windows atendeu aos seguintes requisitos:

  • Forneceu a precisão de tempo necessária para atender aos requisitos de autenticação do Kerberos versão 5.
  • Forneceu um tempo menos preciso para clientes e servidores Windows ingressados em uma floresta do Active Directory comum.

Tolerâncias maiores no 2012 R2 e abaixo estão fora da especificação de design do Serviço de Horário do Windows.

Configuração padrão do Windows 10 e do Windows Server 2016

Embora haja suporte para precisão de até 1 ms no Windows 10 ou no Windows Server 2016, a maioria dos clientes não exige um tempo altamente preciso.

Devido a isso, a configuração padrão destina-se a atender aos mesmos requisitos dos sistemas operacionais anteriores que:

  • Fornecer a precisão de tempo necessária para atender aos requisitos de autenticação do Kerberos versão 5.
  • Fornecer um tempo menos preciso para clientes e servidores Windows ingressados em uma floresta do Active Directory comum.

Como configurar sistemas para alta precisão

A precisão do tempo envolve a distribuição de ponta a ponta de tempo preciso de uma fonte de horário autoritativo para o dispositivo final. Qualquer item que adicione assimetria nas medições desse caminho influenciará negativamente a precisão possível em seus dispositivos.

Por esse motivo, documentamos o Limite de suporte para configurar o Serviço de Horário do Windows para ambientes de alta precisão descrevendo os requisitos ambientais que também devem ser atendidos para alcançar metas de alta precisão.

Requisitos do sistema operacional

As configurações de alta precisão exigem o Windows 10 ou o Windows Server 2016. Todos os dispositivos Windows na topologia de tempo devem atender a esse requisito, incluindo servidores de horário do Windows de estrato mais alto e, em cenários virtualizados, os hosts Hyper-V que executam as máquinas virtuais sensíveis ao tempo. Todos esses dispositivos devem ser pelo menos Windows 10 ou Windows Server 2016.

Na ilustração mostrada abaixo, as máquinas virtuais que exigem alta precisão estão executando o Windows 10 ou o Windows Server 2016. Da mesma forma, o host Hyper-V no qual as máquinas virtuais residem e o servidor de horário do Windows upstream também devem executar o Windows Server 2016.

Diagrama mostrando três máquinas virtuais conectadas a um host Hyper-V do Windows Server 2016 utilizando o Serviço de Tempo do Windows.

Dica

Você pode executar o comando winver em um prompt de comando para verificar se a versão do sistema operacional é 1607 (ou superior) e se o build do sistema operacional é 14393 (ou superior) conforme mostrado abaixo:

Captura de tela do comando winver exibindo o Windows Server 2016 versão 1607 e o sistema operacional build 14393.

Configuração do sistema

Atingir destinos de alta precisão requer a configuração do sistema. Há diversas maneiras de executar essa configuração, incluindo diretamente no registro ou por meio da política de grupo. Encontre mais informações sobre cada uma dessas configurações na Referência técnica do Serviço de Hora do Windows: Ferramentas do Serviço de Hora do Windows.

Tipo de inicialização do Serviço de Tempo do Windows

O Serviço de Horário do Windows (W32Time) deve ser executado continuamente. Para fazer isso, configure o tipo de inicialização do Serviço de Tempo do Windows a fim de ser iniciado de maneira "Automática".

Captura de tela da caixa de propriedades do Serviço de Tempo do Windows exibindo o tipo de inicialização definido como automático.

Latência de rede unidirecional cumulativa

A incerteza na medição e o "ruído" aumentam a latência da rede. Portanto, é imperativo que a latência de rede esteja dentro de um limite razoável. Os requisitos específicos dependem de sua precisão de destino e são descritos no artigo Limite de suporte para configurar o Serviço de Horário do Windows para ambientes de alta precisão.

Para calcular a latência de rede unidirecional cumulativa, adicione os atrasos unidirecionais individuais entre pares dos nós cliente-servidor NTP na topologia de tempo, começando com o destino e terminando na fonte de horário de estrato 1 de alta precisão.

Por exemplo: Considere uma hierarquia de sincronização de tempo com uma fonte altamente precisa, dois servidores NTP intermediários A e B e o computador de destino nessa ordem. Para obter a latência de rede cumulativa entre o destino e a origem, meça os RTTs (tempos de ida e volta) médios NTP individuais entre:

  • O destino e o servidor de horário B
  • O servidor B e o servidor de horário A
  • O servidor de horário A e a fonte

Essa medida pode ser obtida usando a ferramenta w32tm.exe da caixa de entrada. Para fazer isso:

  1. Execute o cálculo do destino e do servidor de horário B.

    w32tm /stripchart /computer:TimeServerB /rdtsc /samples:450 > c:\temp\Target_TsB.csv
    
  2. Realize o cálculo entre o servidor de tempo B em relação (apontado para) ao servidor de temo A.

    w32tm /stripchart /computer:TimeServerA /rdtsc /samples:450 > c:\temp\Target_TsA.csv
    
  3. Realize o cálculo entre servidor de tempo A em relação à origem.

  4. Em seguida, adicione o RoundTripDelay médio medido na etapa anterior e divida por 2 para obter o atraso de rede cumulativo entre o destino e a origem.

Configurações do registro

MinPollInterval

Configura o menor intervalo em log2 segundos permitido para sondagem do sistema.

Descrição Valor
Localização principal HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
Configuração 6
Resultado O intervalo de sondagem mínimo agora é de 64 segundos.

O seguinte comando sinaliza o Tempo do Windows para selecionar as configurações atualizadas:

w32tm /config /update

MaxPollInterval

Configura o maior intervalo em log2 segundos permitido para sondagem do sistema.

Descrição Valor
Localização principal HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
Configuração 6
Resultado O intervalo de sondagem máximo agora é de 64 segundos.

O seguinte comando sinaliza o Tempo do Windows para selecionar as configurações atualizadas:

w32tm /config /update

UpdateInterval

O número de tiques de relógio entre os ajustes de correção de fase.

Descrição Valor
Localização principal HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
Configuração 100
Resultado O número de tiques de relógio entre os ajustes de correção de fase agora é de 100 tiques.

O seguinte comando sinaliza o Tempo do Windows para selecionar as configurações atualizadas:

w32tm /config /update

SpecialPollInterval

Configura o intervalo de sondagem em segundos quando o sinalizador SpecialInterval 0x1 está habilitado.

Descrição Valor
Localização principal HKLM\SYSTEM\CurrentControlSet\Services\W32Time\TimeProviders\NtpClient
Configuração 64
Resultado O intervalo de sondagem agora é de 64 segundos.

O seguinte comando reinicia o Tempo do Windows para selecionar as configurações atualizadas:

net stop w32time && net start w32time

FrequencyCorrectRate

Descrição Valor
Localização principal HKLM\SYSTEM\CurrentControlSet\Services\W32Time\Config
Configuração 2

Observação

Para saber mais sobre as configurações do registro do W32Time, confira Referência de registro de Tempo do Windows