Как можно точно измерить разницу во времени между двумя Linux-машинами? Я слышал, что "Ping" дает RTT с ассоциацией влияний ОС, поэтому неточно на уровне наносекунд? Если да, то что еще нужно для измерения разницы во времени (смещения) между двумя машинами в системе на основе Linux или Raspi?
Это моя попытка измерить точность часов без эталонных часов.
Я выбрал сервер - и сказал, что это моя ссылка - я предпринял некоторые, довольно небольшие усилия, чтобы уменьшить или измерить изменения в «эталонных часах» - эти изменения в конечном итоге должны были сделать его эталонным тактом и записать джиттер. .
Затем я измерил смещение всех других тактовых импульсов от моего назначенного эталона. Я использую NTP для этого, поскольку он пытается исправить ошибку измерения времени прохождения пакета по сети и, я считаю, исправить ошибку из-за времени обработки на обоих концах.
Мне, вероятно, следует провести анализ всех офетов методом наименьших квадратов или, возможно, даже посмотреть, насколько исправляется ссылка или частота, с которой она работает - вместо этого я просто рисую ее, вы можете улучшить это
Итак, у меня было несколько демонов NTP на Linux-боксах (и окнах, маршрутизаторах), все они синхронизировались либо с одним, либо с разными источниками времени, и я хотел увидеть, какие были ошибки.
Чтобы измерить различия, у меня есть одно дополнительное поле с демоном NTP, которое настроено для запроса каждого из других полей, но НЕ выбирает их в качестве источника времени. Я также настроил его на регистрацию статистики, и поэтому он регистрирует смещение от себя до каждого из серверов через определенные промежутки времени.
Я выбрал один NTP-сервер в качестве фактического источника тактовой частоты сервера NTP для стабилизации его тактовой частоты.
Это привело к появлению графиков, которые, по крайней мере, показали мне, что Windows очень плохо отслеживает время, и что другой сервер дисциплинировал часы и стал более стабильным в среднем.
Это верно только для малых десятков мс, за исключением окон, в которых разница составляет 200 мс.
Мой файл конфигурации NTP на мониторной машине выглядит так:
restrict default noquery nopeer nomodify notrap
restrict -6 default noquery nopeer nomodify notrap
restrict 127.0.0.1
restrict -6 ::1
driftfile "C:\Program Files (x86)\NTP\etc\ntp.drift"
server time.windows.com
enable stats
statsdir "C:\Program Files (x86)\NTP\etc\"
statistics loopstats peerstats
server 1.2.3.4 noselect minpoll 6 maxpoll 6
server 1.2.3.5 noselect minpoll 6 maxpoll 6
server 1.2.3.6 noselect minpoll 6 maxpoll 6
Затем я получаю ежедневные файлы «peerstats» в C: \ Program Files (x86) \ NTP \ etc \, в которых есть серверы и смещения с локального компьютера, которые я затем вставляю в SQL и граф
Задержка будет варьироваться в зависимости от характеристик канала (-ов) - например, более высокая задержка может быть вызвана высокой степенью использования каналов.
Я думаю, можно было бы иметь периодический пинг и экспорт / системный журнал, который в систему, которая может отображать текущую задержку для вас, а также прошлые значения для вас.