Warum ist mein EC2-Server jeden Tag um ~ 10 Sekunden ausgeschaltet?

12

Was ich glaube, ist eine Systemdatei, /etc/cron.daily/ntpupdatedie
ntpdate ntp.ubuntu.comtäglich ausgeführt wird, um mit der Netzwerkzeit zu synchronisieren. Jeden Tag wird eine Ausgabe erzeugt, die der folgenden sehr ähnlich ist:

/etc/cron.daily/ntpupdate:
16 Jan 06:30:42 ntpdate[21446]:
step time server 91.189.94.4 offset -12.646804 sec

Ich bin mir nicht 91.189.94.4sicher -12.646804 sec, was das bedeutet, aber ich bin mir ziemlich sicher , dass mein Server etwa 12 Sekunden lang ausgeschaltet ist. Aber ich weiß nicht, warum es jeden Tag um ungefähr den gleichen Betrag abfällt. Dies ist eine Amazon EC2-Instanz, auf der Ubuntu ausgeführt wird.

Ich kann nur vermuten, dass es entweder 12 Sekunden pro Tag verliert / gewinnt oder dass etwas anderes die Zeit mit einer anderen Uhr synchronisiert, die um 12 Sekunden abweicht, und dann synchronisiere ich sie erneut.

Was soll ich tun, um dies weiter aufzuspüren? Ich sehe keine anderen Cron-Jobs in den /etc/cron.*Verzeichnissen oder in den Cron-Jobs der Benutzer ...

AKTUALISIEREN

Ich dachte nur, ich würde teilen, dass ich diese Stunde anfing zu rennen, um zu sehen, ob es zu einer bestimmten Stunde einen großen Sprung geben würde. Dies ist die Stundenleistung:

16 Jan 15:17:04 ntpdate[8346]:
adjust time server 91.189.94.4 offset -0.464418 sec

Anscheinend ist die Uhr zu jeder vollen Stunde um ungefähr eine halbe Sekunde versetzt, was Sinn macht, dass die Uhr an jedem Tag (24 Stunden) um ungefähr 12 Sekunden versetzt ist. Schätze, die Uhr läuft nur schnell! Vielen Dank!

cwd
quelle
91.189.94.4 ist die IP-Adresse von ntp.ubuntu.com
Michael Mrozek
folge diesem Link. Ihr Problem wird behoben. Es half, das gleiche Problem zu lösen docs.aws.amazon.com/AWSEC2/latest/UserGuide/set-time.html

Antworten:

13

Es gibt eine Reihe von Faktoren, die dazu führen können, dass eine Software-Uhr langsam oder schnell läuft. Uhren auf virtuellen Servern sind besonders anfällig für eine ganze Klasse dieser Probleme. 12 Sekunden am Tag sind ziemlich schlecht, bis Sie auf virtuelle Boxen mit Uhren stoßen, die mit 180–200% Geschwindigkeit laufen! Uhren auf Laptops, die angehalten werden, können ebenfalls unter Zeitproblemen leiden.

Sie sollten in Betracht ziehen, ntupdatezugunsten von zu fallen ntpd. Der Paketname ist ntpauf Debian (und vermutlich auch auf Ubuntu). Der NTP-Daemon synchronisiert Ihre Zeit viel proaktiver als ein Cron-Job, synchronisiert mit einem oder mehreren anderen NTP-Servern und hält Ihre Uhr viel genauer. Dies ist eine weitere Implementierung des gleichen Protokolls ntpdate, mit der Ausnahme, dass ntpddie Zeit kontinuierlich überwacht wird.

Wenn Sie den (sehr geringen) Overhead von nicht möchten ntpd, sollten Sie in Betracht ziehen, ntpdateeinmal pro Stunde zu laufen . Angenommen, Sie haben jede Stunde 0,5 Sekunden weniger, dann sollte das ausreichen.

Alexios
quelle
3
Die Probleme mit der virtuellen Maschine können auch weitgehend gelöst werden, indem ein tickless Kernel (CONFIG_NO_HZ) ausgeführt wird. Ich bin mir nicht sicher, ob dies mit dem Ubuntu-Kernel möglich ist oder ob Sie einen eigenen Kernel erstellen müssten.
Patrick
1
Ich habe gerade die Kernel-Konfiguration auf einer Ubuntu 11-Installation (3.0.0-14-generic) überprüft und definitiv CONFIG_NO_HZaktiviert.
Alexios
0

Beantworten Sie die andere Hälfte Ihrer Frage, warum dies geschieht: Computerhardware-Uhren sind notorisch ungenau, so dass eine Abweichung von 12 Sekunden an einem Tag ungewöhnlich ist, es aber nicht wirklich ungewöhnlich ist.

(Dies ist wahrscheinlich auf die häufige Verwendung der Netzwerkzeit zurückzuführen, sodass eine Abweichung von sogar 12 Sekunden pro Tag im Vergleich zu einer Uhr nur geringfügig ärgerlich ist - und die Hardwarefirmen daher billige Clock-Chips verwenden können. Physikalisch passiert wahrscheinlich, dass der Oszillator in Ihrem Clock-Chip nicht ganz richtig kalibriert ist und daher leicht, aber verlässlich langsam läuft.)

Brooks Moses
quelle
-1

Ich vermute, dass ntp die Zeit Ihres Servers nicht aktualisiert, weil der Unterschied zu gering ist. Ich hatte ein ähnliches Problem, ich sah jeden Tag die gleiche Verzögerung, bis ich herausfand, dass ein kleiner Unterschied ntp nicht aktualisiert werden würde, bis ein bestimmter Schwellenwert vorliegt.

Überprüfen Sie Ihre Konfiguration auf den Mindestschwellenwert für die Synchronisierung.

Patkos Csaba
quelle
3
Das ist nicht wahr. Im Gegenteil, NTP versucht, den Unterschied so gering wie möglich zu halten. In die andere Richtung gibt es einen Schwellenwert: NTP aktualisiert die Uhr nicht, wenn der Unterschied zu groß ist (es wird eine falsche Konfiguration vermutet, z. B. eine falsche Zeitzone).
Gilles 'SO- hör auf böse zu sein'