Насколько точным я могу ожидать время от NTP-сервера stratum 0 в той же подсети ethernet?
-
02-07-2019 - |
Вопрос
У меня есть приложение, которое зависит от gpsd и ntpd для точной установки системного времени на компьютере с Linux.
gpsd подается по стандарту NMEA + PPS
Приложение передает по сети ~ 25 МБ в секунду, и я думаю, что загрузка системы каким-то образом вызывает дрожание во времени.(загруженная шина PCI express вызывает нерегулярную задержку прерывания)
У меня есть другая машина, которая вообще не загружена, которую я мог бы настроить для считывания GPS и выполнения функций NTP-сервера для загруженной машины.(загруженная машина получит startum 1 ???)
Насколько точным я могу ожидать время от NTP-сервера stratum 0 в той же подсети Ethernet?
Я надеюсь, что это не слишком не по теме, я уверен, что когда-нибудь кто-то другой будет рад, что ответ задокументирован здесь.;-)
Решение
Лучшая информация, которую я смог найти по Точность NTP, кажется , указывает на 1-2 мс в локальной сети:
NTP v4 с модами ядра, поддерживающими его, способен обеспечить точность намного выше 1 мс, возможно, такую же хорошую, как 1нс.Согласно статье [Дейва Миллса], NTP v3 работает с точностью до 1-2 мс в локальной сети и 10 мс в сетях глобальной сети. http://www.cis.udel.edu /~mills/ntp.html
В других статьях предполагается, что при использовании точного источника времени, такого как источник времени GPS, NTP имеет точность до 50 мкс, но ссылки на поддержку ядра Linux говорят, что возможна точность в несколько мс. http://www.atomic-clock.galleon.eu.com/support/ntp-time-server-accuracy.html
В другой статье говорится, что это зависит от предсказуемости сетевых задержек (т. е.сеть с низким уровнем джиттера). http://www.postel.org/pipermail/end2end-interest/2003-April/002925.html
Другие советы
NTP обычно считается хорошим для небольших однозначных мс в подобных ситуациях.
После того, как он проработает несколько дней, на самом деле не должно быть большого джиттера ни в одном из реальных тактовых импульсов, потому что ntpd реализует кучу фильтрации с очень длительной временной константой.
Однако вы на самом деле не говорите, как вы измеряете время, и какой бы механизм вы ни использовали, он может быть таким же неустойчивым, как (если не больше) базовая синхронизация.
Если у вас действительно загруженная сеть и сетевые карты с действительно глубокой буферизацией, то это может не помочь делу, так как дрожание между поступлением пакетов и обслуживанием прерываний будет больше.Чем сложнее ваша коммутация Ethernet, тем хуже с точки зрения синхронизации - старомодные концентраторы в этом отношении лучше коммутаторов.
Уровень уровня NTP-сервера, о котором идет речь, не имеет никакого отношения к точности часов / сервера.Это просто означает расстояние от "эталонных часов", на котором вы находитесь.
Что еще более важно с точки зрения точности NTP (с точки зрения времени, конечно), так это задержка в сети между серверами, тип используемого сервера и потенциальная нагрузка на сервер.В зависимости от того, какой NTP-сервер вы используете, они документируют, насколько точным будет их время.Каждое серверное программное обеспечение использует различные алгоритмы для вычисления времени в зависимости от задержки в сети и нагрузки на сервер, и все зависит от точности этих алгоритмов.
Например, MS NTP server заявляет, что он будет точным в течение 2 секунд.OpenNTPD заявил, что они не предоставят вам возможную точность сервера.Есть случаи, когда серверы stratum 3 могут быть более точными, чем серверы stratum 2, и т.д.