Existe uma maneira de fazer o ntpd -gq rodar mais rápido

5

Esta questão está relacionada com esta questão e < href="https://serverfault.com/questions/630762/how-can-i-have-ntpdate-ignore-skew/631621?noredirect=1"> esta pergunta anterior eu perguntei no serverfault . / p>

De acordo com minha pergunta anterior, estou interessado em sincronizar a hora na minha máquina de forma rápida (idealmente menos de um segundo), síncrona (se o processo for concluído com 0 status, o tempo deve ser sincronizado) e ("robusto" aqui significa que, desde que recebamos uma resposta do servidor ntp, o tempo deve ser definido de acordo com a resposta). Eu correrei ntp em segundo plano depois dessa rápida sincronização inicial.

Usar ntpdate parece ser muito esquisito, e não é recomendado de qualquer maneira (eu fico esporádico "nenhum erro de servidor disponível", acho que principalmente devido a discrepâncias com o servidor ntp, não de uma falha em alcançar o servidor ntp ). No entanto, uma coisa boa sobre ntpdate é que ele tem uma opção -p que me permite reduzir o tempo necessário para definir meu tempo em meros milissegundos (quando funciona).

Usar sudo ntpd -gq , como sugerido nas perguntas anteriores, parece tornar a sincronização do relógio mais confiável, mas demora pelo menos 7-8 segundos na minha máquina, presumivelmente porque ntpd está tirando várias amostras com o tempo de espera intermediário. Pior, ntpd geralmente trava por minutos antes de sair com sucesso. Não sei por que isso acontece porque o servidor ntp está acessível e respondendo a solicitações durante todo esse período de tempo.

Assim, estou procurando uma maneira de acelerar o tempo que leva para sincronizar o relógio de uma máquina usando ntpd -gq , e estou disposto a sacrificar alguns milissegundos de precisão do relógio inicial para ter um relógio mais rápido sincronização. A razão pela qual estou disposto a fazer esse sacrifício é que a sincronização é parte de um processo de bootstrap que estou executando muitas vezes por dia e esperando de 8 segundos a vários minutos para que o ntp seja executado toda vez que ele diminui o processo (até o ponto que não tenho escolha a não ser aceitar o comportamento rápido, mas depreciado e não confiável de ntpdate ).

Existe uma maneira de obter um desempenho rápido e confiável com ntpd ?

EDIT: Aqui está o meu ntp.conf (se você está se perguntando sobre a localização de server , ele foi programaticamente anexado ao arquivo depois de remover todos os servidores existentes):

# /etc/ntp.conf, configuration for ntpd; see ntp.conf(5) for help

driftfile /var/lib/ntp/ntp.drift


# Enable this if you want statistics to be logged.
#statsdir /var/log/ntpstats/

statistics loopstats peerstats clockstats
filegen loopstats file loopstats type day enable
filegen peerstats file peerstats type day enable
filegen clockstats file clockstats type day enable

# Specify one or more NTP servers.

# Use servers from the NTP Pool Project. Approved by Ubuntu Technical Board
# on 2011-02-08 (LP: #104525). See http://www.pool.ntp.org/join.html for
# more information.

# Use Ubuntu's ntp server as a fallback.

# Access control configuration; see /usr/share/doc/ntp-doc/html/accopt.html for
# details.  The web page <http://support.ntp.org/bin/view/Support/AccessRestrictions>
# might also be helpful.
#
# Note that "restrict" applies to both servers and clients, so a configuration
# that might be intended to block requests from certain clients could also end
# up blocking replies from your own upstream servers.

# By default, exchange time with everybody, but don't allow configuration.
restrict -4 default kod notrap nomodify nopeer noquery
restrict -6 default kod notrap nomodify nopeer noquery

# Local users may interrogate the ntp server more closely.
restrict 127.0.0.1
restrict ::1

# Clients from this (example!) subnet have unlimited access, but only if
# cryptographically authenticated.
#restrict 192.168.123.0 mask 255.255.255.0 notrust


# If you want to provide time to your local subnet, change the next line.
# (Again, the address is an example only.)
#broadcast 192.168.123.255

# If you want to listen to time broadcasts on your local subnet, de-comment the
# next lines.  Please do this only if you trust everybody on the network!
#disable auth
#broadcastclient
server pool.ntp.org
    
por jonderry 28.09.2014 / 22:26

1 resposta

1

As coisas são fáceis quando você posta sua configuração:

mudança:

 server pool.ntp.org

Para:

 server 0.COUNTRY-CODE.pool.ntp.org iburst
 server 1.COUNTRY-CODE.pool.ntp.org iburst
 server 2.COUNTRY-CODE.pool.ntp.org iburst
 server 3.COUNTRY-CODE.pool.ntp.org iburst

Onde o código do país é nós / ca / uk / fr

A carne dessa resposta é o iburst, as duas linhas extras do servidor permitem que o relógio seja definido se um servidor estiver inacessível.

Instale também o hwclock falso para que o tempo persista durante as reinicializações. Não será 1970 toda vez que a máquina ligar.

ATUALIZAÇÃO: vi suas respostas. Por que não executar um servidor ntp local, então o tempo é super rápido para definir e você não precisa se preocupar em se conectar a servidores ntp na internet?

    
por dfc 28.09.2014 / 23:50

Tags