Я запускал ntpdate каждую ночь как cronjob (на двух серверах). И каждое утро я получаю электронное письмо с сообщением о результате. На одном сервере это исправляется примерно на 0,8 секунды каждый день, что мне кажется довольно много.
Но на другом сервере это исправляется примерно на -4 секунды каждый день. Это звучит как массивный дрейф. Это указывает на что-нибудь не так, например на низкий заряд батареи в BIOS? (Сервер довольно старый.)
Спасибо.
По моему опыту, несколько секунд в день дрейфа времени не являются чем-то необычным или неожиданным для физической машины, особенно если дрейф довольно стабилен (то есть не 1 с в один день, 10 с затем следующий, -2 с на следующий день ...) . В виртуальных машинах смещение часов всего на 4 секунды в день было бы большим достижением без такого управления часами, как NTP.
Вместо того, чтобы прыгать по времени один раз в день с помощью ntpdate, гораздо лучше запустить ntpd
и пусть часы будут синхронизированы с помощью своего гораздо более тонкого механизма. Обычная «лучшая практика» - иметь одну машину (или две), которые вы синхронизируете с внешними источниками синхронизации, такими как *. <local> .pool.ntp.org, а затем синхронизируете с ней все остальные машины - это снижает нагрузку на общедоступные серверы NTP (поскольку с ними общаются только одна или две машины) и повышают точность синхронизации между вашими машинами (поскольку они синхронизируются с одним и тем же локальным источником).
Если вы используете Linux на каких-либо виртуальных машинах VMWare и хотите синхронизировать их время с помощью ntp, убедитесь, что вы используете последнее ядро Linux (с «тиковыми часами»), что синхронизация времени VMWare отключена, и что у вас есть tinker panic 0
в верхней части конфигурации ntpd, чтобы он не сдался, если асимметрия часов изменится довольно внезапно из-за высокой нагрузки на виртуальную машину или на хост в целом. Я нашел это наиболее надежное сочетание для поддержания часов виртуальной машины в порядке.
По возможности следует использовать ntpd, ntpdate может вызвать проблемы, например, деление на ноль ошибок в приложениях.
ntpd не изменяет время, он ускоряет и замедляет его, чтобы установить правильное время.
Насколько я знаю, батарея не влияет на часы во время работы системы. RTC в BIOS обычно немного отличаются, но это действительно зависит от различных факторов. Джефф освещал эту тему раньше в деталях.
Я помню, как недавно упоминал, что повышение скорости процессора может вызвать разницу в тактовой частоте, но я думаю, что с тех пор это исправлено.
В зависимости от использования вашей системы (возможно, приложений, критичных по времени), было бы полезно иметь ntpd для поддержания внутренних часов в рабочем состоянии.
Возможно, сервер сильно загружен. Кроме того, если сервер является виртуальной машиной, более высокая нагрузка может сдвинуть время.