Назад | Перейти на главную страницу

Часы на 10% быстрее, чем обычно

У меня странная проблема с часами на моем сервере - они примерно на 10% быстрее, чем обычно.

Проблема началась 2 дня назад, и я ничего особенного с сервером не делал.

Я попытался отключить обновление ntp, остановив демон ntpd.

Похоже, что аппаратные часы отключены.

→ sudo hwclock --show
select() to /dev/rtc to wait for clock tick timed out

Я попытался измерить смещение, используя ntpdate -b prrr.se. Вот результат

После 5 сек

→ sudo ntpdate -b prrr.se
 5 Feb 00:19:54 ntpdate[24137]: step time server 178.78.255.254 offset -1.179405 sec

После 10 сек

→ sudo ntpdate -b prrr.se
 5 Feb 00:20:04 ntpdate[24142]: step time server 178.78.255.254 offset -2.480711 sec

После 20 сек

→ sudo ntpdate -b prrr.se
 5 Feb 00:20:24 ntpdate[24149]: step time server 178.78.255.254 offset -4.680055 sec

Может ли кто-нибудь объяснить мне, почему это происходит и что может быть решением?

Виртуальные серверы имеют заведомо ненадежные часы, поскольку они не получают надежных тиков от процессора. Они даже хуже, чем часы физических машин. Это в основном зависит от нагрузки гипервизора, на котором работает ваш VPS, поэтому, возможно, вы заметили больший дрейф, поскольку нагрузка на физический сервер увеличилась.

Просто включите NTPD и укажите его на несколько серверов NTP. NTP определит, насколько быстро ваши часы дрейфуют, и замедлит их на нужную величину. Он будет периодически контролировать и корректировать эти значения, что приводит к очень точному времени. Демон NTPD требует мало ресурсов и очень эффективен, поэтому я предлагаю просто включить его.

Перемена ntpd обратно. Его задача - выяснить, насколько быстро идут часы, и применить соответствующую коррекцию.

Команда ntpdate является одноразовой. Вы хотите, чтобы демон ntpd выполнял мелкие настройки.

# /etc/init.d/ntpd stop
# ntpdate time.nist.gov
# /etc/inid.d/ntpd start
# watch 'ntpq -pn'

Обратите внимание на символы в левой части вывода ntpq. Они скажут вам, как только у вас будет синхронизация.