Ich habe einen Linux-Server, dessen Zeit mit einer GPS-basierten NTP-Appliance in der Nähe synchronisiert ist. Die Ping-Zeiten vom Server zur Appliance betragen ca. 1 ms mit sehr geringem Jitter:
--- xxxx Ping-Statistiken --- 100 gesendete Pakete, 100 empfangene, 0% Paketverlust, Zeit 99001 ms rtt min / avg / max / mdev = 0,874 / 0,957 / 1,052 / 0,051 ms
Der NTP-Client schätzt die Genauigkeit der Zeitsynchronisation jedoch auf etwa 5 bis 6 ms, was angesichts des Setups sehr hoch erscheint:
synchronisiert mit dem NTP-Server (xxxx) in Schicht 2 Zeit korrekt auf 5 ms Abfrageserver alle 16 s
ntpq -p gibt Folgendes an:
Remote Refid st t, wenn die Abfrage den Verzögerungsoffset-Jitter erreicht ================================================== ============================ * xxxx .PPS. 1 u 10 16 377 0,964 -0,019 0,036
Zwei Fragen:
- Was kann dazu führen, dass der NTP-Client so wenig Vertrauen in die Genauigkeit der Synchronisation hat?
- Gibt es eine Möglichkeit, die tatsächliche Genauigkeit der Synchronisation zu messen, beispielsweise auf die nächste Millisekunde genau?
Antworten:
Der Wert, der
ntpstat
nach "Zeit korrekt innerhalb" angezeigt wird, ist die Root-Dispersion + Root-Verzögerung / 2. Stattdessenntpq -p
wird nicht der Lauf "Root-Dispersion" angezeigtntpq -c rl
.Ungeachtet dessen ist klar, dass die Hauptursache für die mangelnde Genauigkeit eher die Dispersion als die Verzögerung ist (die nur 0,964 beträgt).
Die Dispersion ist der "nominelle Fehler relativ zur primären Referenzquelle". Ich habe den NTPv4-RFC kurz durchgesehen und dies ist zu sagen:
Die Verwendung der rrdtool-Terminologiedispersion ist kein Messgerät, sondern ein Zähler. Wenn Sie einen großen Wert sehen, bedeutet dies möglicherweise nicht, dass etwas nicht stimmt.
Leider konnte ich den NTP-Algorithmus nicht gut genug verstehen, um zu sehen, wie man diese Zahl verkleinert. Ich habe festgestellt, dass dieser Wert gelegentlich zurückgesetzt wird. Ich weiß nicht warum.
quelle
Der Grund, warum ich nach der oben genannten Hardware gefragt habe, ist, dass viele GPS-Geräte (Schicht 0, die 'Root'-Quelle) eine Verbindung zum Computer herstellen, der dann über eine serielle Verbindung als NTP-Server fungiert.
Serielle Verbindungen haben aufgrund von Signalisierungs-Overheads / Interrupt-Wartezeiten häufig einen Jitter von 1 bis 5 ms auf der Leitung. Daher schätze ich, dass Ihre NTP-Quelle von einer seriellen Quelle liest.
Es gibt einige Verbesserungen, die Sie möglicherweise an der seriellen Verbindung vornehmen können, um Jitter zu reduzieren. In erster Linie kann das Deaktivieren von FIFO zu anständigen Ergebnissen führen.
http://support.ntp.org/bin/view/Support/KnownHardwareIssues#Section_9.1.5 . http://www.febo.com/time-freq/ntp/jitter/index.html
quelle
Zeit korrekt innerhalb von 5 ms IST GROSS !!! 5 ms sind 5/1000 Sekunden. Alles unter 100 ms ist für alles andere als eine kleine Handvoll Situationen leicht akzeptabel. In diesem Fall würden Sie kein GPS verwenden, sondern eine lokale Atomuhr und zwei externe Referenzuhren. Wir kommen innerhalb von 10 ms mit dem NTP-Pool.
quelle