Fornire ntpd per apportre modifiche in passaggi più piccoli

La documentazione NTP dice:

In condizioni di ordinaria, ntpd regola l'orologio in piccoli passi in modo che il tempo temporale sia effettivamente continuo e senza discontinuità – http://doc.ntp.org/4.1.0/ntpd.htm

  • La networking di server random di Ubuntu si disconnette
  • Come faccio a contare i messaggi di Postfix di Postfix?
  • Linux in una piccola impresa
  • Come mantenere il tempo su più server in sincronia
  • IPtables bloccando il sito web consentendo solo SSH
  • NTPD problema - sincronizza poi lentamente perde terreno
  • Tuttavia, questo non è affatto quello che ho notato in pratica. Se cambio manualmente il tempo di sistema all'indietro o in avanti per 5 o 10 secondi, quindi avviare ntpd , noto che regola l'orologio in un solo colpo.

    Ad esempio, con questo codice:

     #!/usr/bin/env python import time last = time.time() while True: time.sleep(1) print time.time() - last last = time.time() 

    Quando cambiamo prima il tempo, noterò qualcosa di simile:

     1,00194311142
     8,29711604118
     1,0010,509491 millions
    

    Poi, quando avrò inizio NTPd, vedrò qualcosa come:

     1,00194311142
     -8,117301941
     1,0010,509491 millions
    

    C'è un modo per forzare ntpd per eseguire le regolazioni in piccoli passi?

  • iptables domanda di logging
  • Come scrivere proteggere una directory?
  • limitare ssh per eseguire comandi per alcuni utenti
  • Eseguire il backup dei file di registro in Red Hat Enterprise Linux 5
  • Puppet: err: / Exec / returns: modifica da notrun a 0 failed: Il command ha superato il timeout
  • Può scp copiare directory?
  • 2 Solutions collect form web for “Fornire ntpd per apportre modifiche in passaggi più piccoli”

    Passando ntpd -x all'avvio del demone, le modifiche verranno mantenute molto piccole: non ci sarà nessun passo dell'orologio. Naturalmente, l'impostazione della rotazione significa solo che potrebbe richiedere un po 'di tempo per correggere le lacune più grandi se si inizia con il tuo orologio molto lontano dall'ora corretta. Citando alcuni paragrafi dalla pagina uomo

    Nelle normali condizioni, ntpd regola l'orologio in piccoli passi in modo che la scala temporale sia effettivamente continua e senza discontinuità. In condizioni di congestione di networking estrema, il jitter di ritardo di andata e return può superare i tre secondi e la distanza di sincronizzazione, pari alla metà del ritardo di andata e dei termini di errore di errore, può diventare molto grande. Gli algoritmi ntpd scartano gli offset di campioni superiori a 128 ms, a less che l'intervallo durante il quale nessun offset di campione è inferiore a 128 ms superi i 900. Il primo campione dopo che, indipendentemente dall'offset, passa l'orologio all'ora indicata. In pratica, questo riduce il tasso di allarme falso in cui l'orologio è scalato in errore ad un'infezione di vanishingly bassa.

    Dal momento che hai regolato il tuo orologio per 10 secondi, è sicuramente superato il regno di ciò che NTP si aspettava di vedere, quindi il passo.

    Come risultato di questo comportmento, una volta che l'orologio è stato impostato, molto raramente si percorre più di 128 ms, anche in casi estremi di congestione e jitter di path di networking. A volte, in particolare quando viene avviato il primo ntpd, l'errore potrebbe superare 128 ms. Questo può causare l'orologio all'indietro se l'orologio locale è più di 128 s in futuro rispetto al server. In alcune applicazioni, questo comportmento può essere inaccettabile. Se l'opzione -x è inclusa nella row di command, l'orologio non sarà mai passato e verranno utilizzate solo correzioni slew.

    Le problematiche dovrebbero essere esplorate con attenzione prima di decidere di utilizzare l'opzione -x. La velocità massima ansible è limitata a 500 parti per milione (PPM) come conseguenza dei principi di correttezza su cui si basa il protocollo NTP e il disegno di algorithm. Di conseguenza, l'orologio locale può richiedere molto tempo per convergere in un offset accettabile, circa 2.000 s per each secondo l'orologio è al di fuori della gamma accettabile. Durante questo intervallo, l'orologio locale non sarà coerente con nessun altro clock di networking e il sistema non può essere utilizzato per applicazioni distribuite che richiedono tempo di networking correttamente sincronizzato.

    L'esecuzione di ntpdate prima di avviare servizi importnti e quindi l'esecuzione di ntpd -x dopo che questa può essere una buona soluzione combinata per assicurarsi che accadano qualsiasi passaggio importnte prima che sia necessario eseguire un timer senza passo.

    Se questo è per il codice che vuoi scrivere, questa potrebbe essere la risposta che stai cercando: https://stackoverflow.com/questions/1205722/how-do-i-get-monotonic-time-durations-in-python

    Suggerimenti per Linux e Windows Server, quali Ubuntu, Centos, Apache, Nginx, Debian e argomenti di rete.