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

непредсказуемый высокий джиттер ntp от одного локального источника часов GPS

Вопрос

Как я могу исправить временный высокий джиттер NTP?

Исходная информация

У меня есть NTP-сервер в моей частной сети. Мои серверы синхронизируются по этим часам, и обычно все хорошо. Пример набора вывода:

ntpq> pe
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.10.10.249    10.10.100.20     3 u  367 1024  377    0.096    0.145   0.142
ntpq> as

ind assid status  conf reach auth condition  last_event cnt
===========================================================
  1  2378  962a   yes   yes  none  sys.peer    sys_peer  2
ntpq> rv 2378
associd=2378 status=962a conf, reach, sel_sys.peer, 2 events, sys_peer,
srcadr=10.10.10.249, srcport=123, dstadr=10.10.200.1, dstport=123,
leap=00, stratum=3, precision=-18, rootdelay=1.190, rootdisp=37.155,
refid=10.10.100.20,
reftime=df134714.c026b762  Mon, Aug  6 2018 22:15:48.750,
rec=df134a04.507b5ad6  Mon, Aug  6 2018 22:28:20.314, reach=377,
unreach=0, hmode=3, pmode=4, hpoll=10, ppoll=10, headway=0, flash=00 ok,
keyid=0, offset=0.145, delay=0.096, dispersion=15.187, jitter=0.142,
xleave=0.052,
filtdelay=     0.10    0.10    0.05    0.08    0.09    0.11    0.11    0.11,
filtoffset=    0.14    0.16    0.19    0.12    0.02   -0.02   -0.04   -0.10,
filtdisp=      0.00   15.57   31.37   47.42   63.65   79.41   95.27  110.72

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

filtdelay=     0.06    0.11  250.20    0.07    0.04    0.10    0.07    0.09,
filtoffset=    0.05   -0.01  124.95   -0.05   -0.05   -0.07   -0.05   -0.03,

Обратите внимание, что в этом случае offset (обычно, но всегда) остается в пределах 0,5 / -0,5:

# ntpq -pn
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
*10.10.10.249    10.10.100.20     3 u  711 1024  377    0.112   -0.006  47.230

Иногда высокое значение джиттера может сохраняться, в основном неизменным, в течение нескольких часов. Большой джиттер варьируется от 1 до более 100. В конце концов он снова падает ниже 1.

Дополнение Мы наблюдаем корреляцию между загрузкой системы и джиттером NTP. Как первое предположение, пакеты NTP могут конфликтовать с трафиком NFS.

РЕДАКТИРОВАТЬ Это не источник часов GPS.

РЕДАКТИРОВАТЬ Это определенно проблема. Джиттер, который мы видим, примерно коррелирует с высокими значениями смещения.

Основываясь на моем опыте работы над проектом Mars 2003 в JPL, где я отвечал за программный контур фазовой автоподстройки частоты, который синхронизировал моделирование наземного космического корабля с нисходящим тактовым сигналом космического корабля, наложение спектров - единственное явление, о котором я могу думать. из-за этого может возникнуть временное дрожание. Псевдоним происходит, когда теряется связь между тем, что, по мнению клиента временного сигнала, представляет сигнал «тик», и тем, чем он является на самом деле. Если ваши клиенты («мои серверы» в вашем вопросе) используют алгоритм сглаживания, чтобы попытаться восстановить синхронизацию после потери связи, им может потребоваться некоторое время для повторной синхронизации.

Тактовый сигнал Mars'03 составлял 8 Гц, что означает 8 сигналов в секунду. Если клиент отстает в выборке более чем на 1/8 секунды, он пропустит один из сигналов и запутается. Чтобы бороться с этим, я сделал контур фазовой автоподстройки частоты как можно более надежным и эластичным, так что в нормальных условиях практически невозможно было потерять синхронизацию с входящим сигналом. Если он действительно потерял синхронизацию (чего я никогда не видел, если только я не принудительно использовал его с помощью осциллографа), ему пришлось бы начинать все сначала, ожидая появления хорошо известного шаблона синхронизации, после чего он мог бы сбросить контур фазовой автоподстройки частоты, просто как это происходит при запуске.

Я предполагаю, основываясь на этом опыте, что ваш временный джиттер является результатом временных потерь связи в сети синхронизации времени, которые могут усугубляться пакетными штормами, если ваш протокол времени гарантирует доставку, как и TCP / IP. Если протокол гарантированной доставки отстает от тактового сигнала, возникает псевдоним. Затем клиенты должны делать все, что они делают, для повторной синхронизации, и попытка гарантировать доставку в этих обстоятельствах может вызвать бурю пакетов, которая усугубит ситуацию до того, как они поправятся. Если логика сглаживания достаточно надежна, вы можете проверить, использует ли ваш протокол времени TCP / IP (который гарантирует доставку) или UDP (что не делает, но намного проще) и использовать UDP для устранения штормов пакетов.