Как далеко «слишком далеко» для ntpd? Может ли он попасть туда внезапным прыжком на тяжелый груз? Может ли это быть отменено?

21

Во многих учебниках по ntpd, таких как этот , всегда есть предупреждение, что ntpd перестанет сбрасывать часы: «[если] ваши часы слишком далеко».

Насколько далеко "слишком далеко"?

Кроме того, если сервер внезапно перейдет к большой нагрузке, например, из-за полного простоя на 100% ЦП, не приведет ли повышение температуры к тому, что часы переместятся на «слишком большое расстояние»?

Можно ли настроить ntpd для сброса часов, даже если время «слишком далеко» или, по крайней мере, «слишком далеко» немного дальше?


источник
How far off is "too far off"?Зависит. Какие ОС / дистрибутивы вы используете, в частности?
HopelessN00b
@ HopelessN00b сервер убунту. Я полагал, что это будет трудно определить из-за сложности алгоритма, поэтому я могу жить с приблизительной фигурой.
Все ваши вопросы являются переменными, которые вы можете установить в конфигурации
Jacob
@ Джейкоб Спасибо, Джейкоб! Не могли бы вы показать мне где? Я никогда не видел ничего, что расширяет диапазон сброса, и все, что я могу найти для более высокой частоты синхронизации, это то, burstчто вас забанят. :/ Огромное спасибо заранее!
Я не думаю, что загрузка процессора или температура должны влиять на ваши часы. Все таймеры на типичном компьютере в конечном итоге поступают от генератора, который, насколько я знаю, находится вне пакета ЦП и не подвержен влиянию каких-либо действий ЦП.
Нейт Элдредж

Ответы:

19

Во-первых, максимальная разница по умолчанию составляет 1000 с, как уже упоминали другие. Как сказал @kyle, вы можете использовать -gфлаг, чтобы игнорировать это ОДНО время только для первоначальной установки часов.

После этого вы действительно не должны видеть, как ваши часы смещаются на 1000 секунд между обновлениями даже при высокой нагрузке, и если вам это нужно, вам действительно нужно заменить часы. Настройки в нужной вам конфигурации minpollи maxpoll. Это позволит вам установить длительность интервала в степень 2 (например, 10 означает 2 10 = 1024 с).

Обратите внимание, что ваша система, вероятно, не будет существенно дрейфовать даже при высокой нагрузке, и настройки по умолчанию должны держать ее под контролем. Вы не хотите бомбардировать NTP-серверы обновлениями каждую секунду, так как вы тратите ресурсы, это блокирует вас и, скорее всего, вызов вашего NOC-провайдера. Если вам действительно нужно очень точное время, используйте GPS или настройте собственный NTP-сервер.

Иаков
источник
2
В зависимости от того, что вы делаете, несколько мсек, которые он может сдвинуть в день, «существенно» для людей.
PlasmaHH
2
@PlasmaHH Тогда я бы предложил использовать лучший источник времени, такой как GPS.
Джейкоб
Большое спасибо, Джейкоб! Вы случайно не знаете, какой самый распространенный лимит ставок? Я хотел бы поддерживать хорошее время в диапазоне 10 мс, показанном здесь ntp.org/ntpfaq/NTP-s-algo.htm#Q-ACCURATE-CLOCK без дорогостоящего оборудования. Заранее большое спасибо!
1
@Gracchus Это зависит от отдельных серверов NTP, и вам придется связаться с ними. По моему мнению, вы пытаетесь использовать NTP в качестве опоры для чего-то, где вам нужно очень точное время. Поэтому вы должны использовать лучшее решение (например, GPS), чтобы получить его, а не увеличивать нагрузку на бесплатный сервис.
Джейкоб
3
@Gabe: Заменить здесь также может означать добавление других часов в систему. Также есть довольно много опций, чтобы добавить различные виды часов в качестве pci-карт.
PlasmaHH
12

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

Максимально возможная скорость нарастания ограничена ядром Unix до 500 частей на миллион (PPM). В результате часы могут брать 2000 секунд за каждую секунду, когда часы находятся за пределами допустимого диапазона.

Согласно странице руководства, ntpd не будет работать, если ваши часы отключены более чем на 1000 секунд.

Поскольку поворот часов на настройку их на 1000 секунд займет не менее 3 недель, и в течение этого времени все метки даты / времени все еще выключены, что не представляется необоснованным.

Команда ntpdateимеет переключатель -b для простой настройки времени без поворота. Это полезно в тех случаях, когда локальные системные часы слишком сильно отклоняются от «правильного» времени.

HBruijn
источник
9

Это указано в man ntpd, и вы можете переопределить его, возможно, вас заинтересует -gопция (обратите внимание на «который по умолчанию равен 1000 с»:

-g Обычно ntpdвыходит с сообщением в системный журнал, если смещение превышает порог паники, который по умолчанию составляет 1000 с. Эта опция позволяет установить время на любое значение без ограничений; однако это может произойти только один раз. Если порог будет превышен после этого, ntpdвыйдет с сообщением в системный журнал. Эта опция может быть использована с -qи -xопциями. Смотрите tinkerкоманду для других опций.

Вы можете настроить это в ntpd.conf. Если вы хотите отключить его, вы можете установить tinker panic 0. Обратитесь к документации по другим параметрам, чтобы узнать больше.

Кайл Брандт
источник
Отлично! Наконец-то нашел minpollи maxpoll. Спасибо!
Кайл, это неправильно. Это одноразовая команда, и она не будет решать будущие проблемы. Вы также не упоминаете minpollили maxpoll.
Джейкоб
1
Чтобы это работало для меня, мне пришлось использовать следующие шаги: «sudo service ntp stop», «ntpq -gq» и «sudo service ntp start»
Терри Хорнер,