Ich habe auf einigen (Hardware-) Servern ein seltsames Verhalten bei der Änderung der Systemzeit festgestellt: In /var/logs/syslog
ändert sich die Datums- und Uhrzeitangabe vor jeder Protokollnachricht manchmal in eine zufällige und wird in der nächsten Nachricht wieder normal, wie folgt:
Feb 22 2018 09:09:30 ...
Feb 22 2018 09:09:32 ...
Jan 13 2610 15:37:42 ...
Feb 22 2018 09:09:33 ...
Feb 22 2018 09:09:34 ...
Wie im Beispiel kann die plötzliche Änderung der Datums- und Uhrzeit bis zu Hunderten von Jahren entfernt sein.
Ich kann bestätigen, dass die Protokollnachrichten mit den seltsamen Zeitstempeln nicht aus einem bestimmten Prozess stammen - sie können nur zufällig für jeden einzelnen auftreten.
Die Dauer zwischen zwei abnormalen Zeitänderungen variiert zwischen einigen Minuten und einigen Stunden (ich vermute jedoch, dass die abnormalen Zeitänderungen häufiger auftreten könnten, aber viele davon werden nicht im Syslog angezeigt, da nicht jede Sekunde Protokolle geschrieben werden).
Da dies auf mehr als einem Server geschieht, gehe ich davon aus, dass es sich nicht um ein Hardwareproblem handelt.
Weitere Informationen zu den Servern: Es handelt sich um eine Openstack-Installation mit einem Controller und einigen Rechenknoten. Auf jedem Server wird ein NTP-Dienst ausgeführt. Der Controller ist so konfiguriert, dass er Zeit von seiner eigenen Hardware-Uhr benötigt, und die Rechenknotenserver synchronisieren die Zeit vom Controller. Beachten Sie, dass jeder Server ungewöhnliche Zeitänderungen in seinem eigenen Tempo aufweist. Es sieht so aus, als ob die "falsche Zeit" nicht über ntp vom Controller synchronisiert wird.
Ich hatte den Verdacht, dass die Gastsysteme (virtuelle Maschinen) auf Rechenknoten die Zeit ihres Hostsystems beeinflussen könnten. Dies kann jedoch nicht erklären, warum der Controller das gleiche Problem hat, wenn keine virtuelle Maschine ausgeführt wird.
Ich brauche eine Methode, um zu erkennen: Wer hat die Systemzeit geändert und wie geschieht dies?
quelle
hwclock
? Wenn es sich auch zu dieser Zeit ändert ...Antworten:
Die relevanten Aspekte sind die Kernel-Versionen und diese Zeilen von Anfang an:
YMMV und Sie verwenden möglicherweise nicht TSC oder PIT
AFAIK Dies ist ein Fehler, der dadurch verursacht wird, dass die Uhr mindestens einer Ihrer CPUs nicht synchron ist und in Ihrem Fall wahrscheinlich zu schnell läuft.
Es sollte leicht zu bestätigen sein, indem Sie Folgendes ausführen:
date
Dies läuft gegen jede CPU (vorausgesetzt, Sie haben bis zu 8 Kerne / Threads). Wenn meine Vermutung richtig ist, hat eine Ihrer CPUs durchweg die falsche Zeit.Wenn dies der Fall ist, sollten Sie zuerst versuchen, den Kernel zu aktualisieren. Wenn dies nicht funktioniert, spielen Sie mit dem Clockource-Boot-Parameter (vorausgesetzt, es ist
x86-64
):Siehe auch die Ausgabe davon:
quelle
Es sieht so aus, als ob die Hardware-Uhr auf Ihrem Controller-Server keine stabile Informationsquelle über die Zeit ist. Sie sollten Ihren Controller so konfigurieren, dass er seinen Typ mit einer zuverlässigeren Atomuhr synchronisiert.
Mit diesem Befehl können Sie Ihre Hardware-Uhr aktualisieren:
hwclock -s
Siehe auch:
quelle
kopiert von: CRON-Nachrichten werden im Syslog beliebig lange verzögert :
quelle
Sie sollten einen externen NTP-Server verwenden, der mit einer Schicht 1 oder 2-Quelle synchronisiert ist, um solche Anomalien zu vermeiden. Hardware-Uhren sind nicht zuverlässig.
quelle