Как настроить ntpd для более частой синхронизации времени?

10

Мне нужно настроить ntpd для синхронизации времени как можно чаще, как это сделать?

UPD Мне нужно заставить ntpd чаще настраивать системные часы, а не опрашивать серверы. Это необходимо, потому что системные часы моего виртуального ПК слишком сильно
сдвигаются, maxpoll, кажется, ничего не меняет, потому что я установил minpoll / maxpoll на 4 и 5, и настройки времени, кажется, производятся только один раз в несколько минут.

user626528
источник
почему ты хочешь сделать это?
Кайл Смит
Потому что мне нужно точное время для моей задачи. Есть ли причины не делать этого?
user626528
8
@ user626528 определить «точное время». Сказать, что вам нужна точность, а не определить степень точности, в которой вы нуждаетесь, бессмысленно: и снайперская винтовка, и 51-дюймовый минометный снаряд являются «точными» боеприпасами.
voretaq7

Ответы:

12

iburstВариант делает несколько проверок быстро , как только запускается демон и всякий раз , когда сервер недоступен , если у вас есть , что в вашей конфигурации. burstВариант делает несколько проверок быстро всякий раз , когда сервер доступен.

По умолчанию ntpdзатем следует экспоненциальный откат, при котором время между проверками постепенно увеличивается, начиная с 64 секунд и удваиваясь каждый раз, максимум до 1024 секунд.

maxpollОпция позволяет установить максимальное значение выше или ниже. Это значение - сила 2 в секундах между проверками, поэтому для 1024 секунд maxpoll- 10. Также есть minpollзначение по умолчанию 6, которое можно уменьшить до 4.

Если вы хотите что-то более частое, чем каждые 16 секунд, вам, вероятно, придется использовать ntpdateвместо этого ntpdи запустить свой собственный цикл.

Пожалуйста, не направляйте это на общедоступные серверы времени, не связавшись с сопровождающими.

Ladadadada
источник
3
Вероятно, лучше всего, что он никогда не использует NTPdate, так как он не подчиняется сообщениям KOD или ICMP.
Крис С
Дальнейшее чтение о KoD и о том, как запустить хороший NTP-клиент в целом: en.wikipedia.org/wiki/NTP_server_misuse_and_abuse
Ladadadada
То, что сказал @ChrisS - ntpdateотлично подходит для синхронизации часов один раз или для принудительной синхронизации с вашим собственным NTP-сервером каждую секунду на машинах, где локальный дрейф часов ужасен. Если вы в последнем случае заменить машину (часы , которые плохо будет дрейфует на несколько секунд каждую минуту - вы никогда не будете иметь точное время).
voretaq7
10
Пожалуйста, пожалуйста, пожалуйста, НЕ будьте тем парнем, который меняет настройки по умолчанию на NTP. Я должен смотреть на мой общедоступный NTP-сервер еженедельно и убивать парней, отправляющих 1 пакет каждую секунду. Если ваш сервер не слушает ICMP сообщение о том , «запрещен администраторе,» Я буду называть NOC вашего провайдера , и вы будете иметь плохой день. NTP самостоятельно установит точность с точностью до миллисекунд и отрегулирует скорость запроса по мере необходимости. Скрипка не помогает.
Джефф Ферланд,
20

ntpdне синхронизирует время периодически так, как вы думаете, смотрите здесь для получения дополнительной информации (прочитайте все это, это все важно. Короткая версия: ntpdсинхронизирует время и сообщает системе, насколько быстро оно отклоняется от «истинного» времени, Затем система корректирует свою тактовую частоту для правильного отслеживания «истинного» времени. В течение дня большинство систем отслеживают с точностью до 5 мс от эталона).

В отсутствие ОТЛИЧНОЙ причины, по которой вы не должны ломать голову над тем, как ntpdнастраивает и дисциплинирует ваши часы - эти алгоритмы были тщательно протестированы и отлажены, а при наличии адекватного эталонного времени произойдет очень маленькая частота ошибок.
Честно говоря, если у вас есть такая ОТЛИЧНАЯ причина, вы уже знаете, что это такое, и у вас есть существенный бюджет, чтобы нанять эксперта, который сделает эти модификации для вас («вы бы не задавали этот вопрос, если бы вам это действительно нужно»).

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

voretaq7
источник
@ChrisS - это довольно широкая полоса - у вас могут быть проблемы с контролем температуры в вашем центре данных
voretaq7
3
Мы используем протокол времени точности , когда это действительно критическая ... en.wikipedia.org/wiki/Precision_Time_Protocol
ewwhite
6
-1 algorithm or program that requires high precision and accuracy! = mega corp with super massive budget.
TheLQ
@TheLQ GPS-приемник (как упомянул Крис С. в своем ответе) также является точным эталоном и не требует ничего, напоминающего «сверхбольшой бюджет» (вы можете рассчитывать потратить от ста до тысячи долларов за один). Точность возрастает оттуда, а стоимость увеличивается вместе с ней, как правило, по экспоненциальной кривой. Точное время никогда не было бесплатным /
voretaq7
1
Еще одно применение для использования локальных опорных часов: высокоточное одностороннее измерение производительности сети. internet2.edu/performance/owamp
Дэн Приттс
7

Получить GPS-приемник времени, если вам нужно очень точное время. Он будет проверять ваши часы каждую секунду. Если вы не хотите тратить много, вы можете получить Garmin 18x LVC на eBay или Amazon за <100 долларов и подключить его к COM-порту. Проезд по Интернету, но требует минимального уровня навыка проводки. Доступны комплексные решения, которые стоят дороже, если вы не участвуете в проектах DIY.

Крис С
источник