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

Ntpd слишком неточный

Я настроил ntpd (версия Meinberg ntp-4.2.6p5@london для Windows на клиенте Windows 7) с несколькими соседними серверами, выбранными для низкого времени пинга (обычно пинг 10-20 мс). Однако кажется, что мои часы точны только в пределах 100 мс или меньше, и со временем они не улучшаются. Я бы подумал, можно много Больше точнее, чем время пинга, это разочаровывает. Как заставить его работать лучше?

ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+pool-test.ntp.o 216.218.254.202  2 u  259 1024   17   12.920  -106.39 111.972
+palpatine.steve 208.201.242.2    3 u  239 1024   17   16.959  -102.84 112.056
+grom.polpo.org  127.67.113.92    2 u  259 1024   17   17.362  -184.43  74.468
+paladin.latt.ne 204.123.2.72     2 u  378 1024    3   24.211  -106.97  61.825
+public-ntp1.iso 204.13.164.164   3 u  259 1024   17   33.080  -100.17  65.970
+nist1.symmetric .ACTS.           1 u  214 1024   17   17.548  -108.30 111.951
*nist1-sj.ustimi .ACTS.           1 u  245 1024   17   21.826  -111.02  63.313

Как джиттер и смещение могут быть намного больше задержки? Отключение на 100 мс при времени пинга 12 мс кажется смешным, я неправильно читаю?

На самом деле, я не уверен, что ntp делает что-нибудь, чтобы изменить мои часы - похоже, получить время, но не обязательно устанавливать что-нибудь. Как я могу проверить?

Еще немного информации:

ntpdc> sysinfo
system peer:          nist1-sj.ustiming.org
system peer mode:     client
leap indicator:       00
stratum:              2
precision:            -11
root distance:        0.02182 s
root dispersion:      0.15431 s
reference ID:         [216.171.124.36]
reference time:       d4dae2b5.3c32ce54  Fri, Mar  1 2013  0:17:57.235
system flags:         auth monitor ntp kernel stats
jitter:               0.045776 s
stability:            0.000 ppm
broadcastdelay:       0.000000 s
authdelay:            0.000000 s

more "c:\Program Files (x86)\NTP\etc\ntp.drift"
192.049

more "c:\Program Files (x86)\NTP\etc\ntp.conf"
driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift"
server nist1.symmetricom.com iburst
server nist1-sj.ustiming.org iburst
server 149.20.68.17 iburst
server 173.230.144.109 iburst
server 65.19.178.219 iburst
server 204.2.134.162 iburst
server 173.230.144.109 iburst
server 207.115.64.229 iburst

В идеале я хочу, чтобы время находилось не более чем в 50 мс от медианы настроенных серверов, если оно когда-нибудь удалится, я хочу, чтобы оно пошло. Есть ли какой-либо параметр конфигурации, который я могу установить, чтобы ntp сделал это?

NTP был разработан для получения точного времени в пределах 1 секунды практически в любой сети. Так что в этом отношении 100 мс работают правильно. На практике сегодня NTP обычно держит время в пределах 20 мс практически на любом оборудовании и 5-10 мс на оборудовании с постоянным RTC.

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

NTP не «устанавливает» часы (по умолчанию). Он «поворачивает» часы, заставляя их работать немного быстрее или медленнее, пока часы не достигнут заданного времени. Затем скорость нарастания корректируется, чтобы компенсировать «дрейф» (величина, рассчитанная NTP как быстрый или медленный RTC по сравнению с одноранговыми узлами).

Кроме того, я согласен со всеми рекомендациями Ответа Тгарольда.

Джиттер (также известный как дисперсия в старых версиях NTP) может сильно меняться со временем. Особенно, если у вас есть установка, в которой соединение между вами и сервером NTP перегружено. Вам нужно будет либо запускать "ntpq -p" часто (примерно каждые "опросные" секунды) для отслеживания джиттера, либо включать файл производительности (строки "statsdir" и "statistics" в файле ntp.conf).

http://www.ntp.org/ntpfaq/NTP-s-sw-clocks-quality.htm http://www.ntp.org/ntpfaq/NTP-s-trouble.htm

В идеале я хочу, чтобы время находилось не более чем в 50 мс от медианы настроенных серверов, если оно когда-нибудь удалится, я хочу, чтобы оно пошло. Есть ли какой-либо параметр конфигурации, который я могу установить, чтобы ntp сделал это?

NTP так не работает. Он выбирает один сервер из вашего списка, помечает его знаком «*» (звездочка, также известный как источник эталонного времени) в первом столбце вывода «ntpq -p» и пытается следовать за ним. В случае, когда источник эталонного времени стал недоступен, он вернется к следующему одному из серверов «+» (квалифицированных кандидатов).

Я предлагаю:

  1. Не использовать iburst на каждом сервере
  2. Выберите свой лучший сервер, используйте на нем iburst и отметьте его как «предпочтение», то есть «server tick.example.com предпочитают iburst».
  3. Только ручной выбор 3-х близких серверов.
  4. Больше используйте DNS-имена регионального пула (например, [0-3] .us.poo.ntp.org) для остальных.
  5. Сделайте минимум 4 эталонных сервера, но не более 9.
  6. Никогда не настраивайте строку «сервер 127.127.1.0» (также известную как локальные часы) или строку «выдумки».

По умолчанию выбор между «поворотом» и «шагом» составляет 128 мс. Если смещение по времени> 128 мс, оно будет пошагово вместо нарастания. См. Параметр «-x» для «ntpd» (который никогда не следует использовать, если у вас нет программного обеспечения, которое срабатывает, если часы пошаговые).

В дополнение к «ntpq -p» вы также можете посмотреть «ntpdc -c loopinfo».