Время идет слишком быстро на FreeBSD 12 на вычислительном движке
Я создал виртуальную машину FreeBSD на облачном движке Google. Образ установлен с настроенным ntpd и работает:
$service ntpd status
ntpd is running as pid 4950.
Но дата в будущем, время идет слишком быстро на сервере.
$date
Mon Feb 25 15:59:38 UTC 2019
UTC сейчас: пн 25 февраля 10:31:21 UTC 2019
Я попытался перезапустить службу ntpd:
$service ntpd restart
без удачи. Я нашел обсуждение здесь: https://forums.freebsd.org/threads/the-system-clock-is-falling-behind.61450/. Мне нужен дрифт-файл, поэтому я добавил один:
$echo "0" > /var/db/ntpd.drift
Затем я остановился и запустил службу ntpd:
$service ntpd stop
$service ntpd start
Сейчас время правильное. Но я немного растерялся, это был жесткий стоп / старт или дрейф файл, который решил проблему.
[Обновить]
Подведем итог проблемы: время, когда сервер работает слишком быстро. Служба ntpd не исправляет проблему, только когда я перезапускаю службу. На мой наивный взгляд кажется, что секунда на ВМ немного короче настоящей секунды.
1 ответ
Поместите эту строку в rc.conf. Время будет синхронизировано при запуске системы и / или при повторном запуске ntpd.
ntpd_sync_on_start="YES"
Этот параметр заставляет "ntpd" запускаться с опцией "-g" (см. /Etc/rc.d/ntpd), (см. Man ntpd)
-g, --panicgate. Позвольте первой настройке быть Большой. Эта опция может появляться неограниченное количество раз. Обычно ntpd завершает работу с сообщением в системный журнал, если смещение превышает порог паники, который по умолчанию составляет 1000 с. Эта опция позволяет установить время на любое значение без ограничений; однако это может произойти только один раз. Если порог будет превышен после этого, ntpd выйдет с сообщением в системный журнал. Эта опция может использоваться с опциями -q и -x. См. Директиву файла конфигурации тинкера для других опций.
Для синхронизации работающей системы:
1) остановить нтпд
# /etc/rc.d/ntpd stop
Stopping ntpd.
2) время синхронизации
# ntpdate 2.freebsd.pool.ntp.org
25 Feb 13:58:42 ntpdate[78591]: adjust time server 62.197.207.182 offset 0.003268 sec
3) запустить ntpd
# /etc/rc.d/ntpd start
Starting ntpd.
Ответить на ваш вопрос
Был ли это жесткий останов / запуск или дрейф-файл, который решил проблему?
Должно быть, это был "жесткий стоп / старт". Driftfile используется для тонкой настройки частоты часов. Это не может объяснить разницу в 5 часов.
FWIW. Смотрите ниже мой дрифт-файл во FreeBSD на DO.
# cat /var/db/ntpd.drift
0.075
# ps ax | grep ntpd
26681 - Ss 22:51.54 /usr/sbin/ntpd -g -c /etc/ntp.conf -p /var/run/ntpd.pid -f /var/db/ntpd.drift
При использовании
ntpd
и
ntpdate
уменьшит проблему, время между обновлениями будет продолжать меняться. Кроме того, текущие образы GCE для FreeBSD 12 уже настроены для синхронизации с сервером времени Google, но проблема все еще остается. Это известная проблема FreeBSD 12 в Google Compute Engine.
Проверьте GCE: значительный дрейф часов - решение для исправления этого. Резюмируя:
/boot/loader.conf:
machdep.disable_tsc_calibration=1
kern.timecounter.invariant_tsc=1
/etc/sysctl.conf:
kern.timecounter.hardware=TSC-low