Определите разницу во времени между двумя серверами Linux


22

Я устраняю проблему с задержкой в ​​сети. Это, вероятно, проблема с никчемным или кабельным соединением, но пока я разбирался с этим, я смотрел на время пинг-пакета, покидающего сетевую карту и прибывающего на другой сервер. Оба linux.

Итак, у меня запущен tcpdump, и я запускаю эхо-запрос от одного к другому и обратно, и просмотр временных различий мог бы пролить свет на то, откуда возникает задержка.

Сейчас это академическое упражнение, поскольку мне нужно устранить некоторые более фундаментальные причины, но мне было любопытно, как этого можно достичь. Учитывая, что ntpd установлен и работает на двух серверах, как я могу подтвердить текущую временную несоответствие между этими двумя серверами с какой бы то ни было степенью точности - учитывая, что мы говорим о задержке на локальной сети, которая в идеале равна миллисекунде или так.

Сам NTP является точным с точностью до пары мс при хороших условиях, и, поскольку оба сервера находятся в одной и той же среде, они должны (предположительно) достичь одинакового уровня точности и, следовательно, должны иметь временную дискретность между ними всего лишь несколько мс - но как я могу это проверить?

Ответы:


14

Если два сервера являются узлами NTP, используйте

  ntpq -p

Который покажет текущие смещения

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


ОБНОВИТЬ

У меня есть два сервера Unix, использующих NTP. Давайте посмотрим, какое время они проводят:

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 hufu.ki.iif.hu  185.219.2.214    2 u   12   64    1   71.755   -0.073   0.001
 web.puflet.info 188.138.107.156  3 u   11   64    1   78.248    0.417   0.001
 84.2.44.19      10.20.75.140     2 u   10   64    1   74.721   -1.076   0.001

$ sudo /usr/sbin/ntpq -p otherbox
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
+ntp2.exa-networ 195.66.241.10    2 u  799 1024  377   43.405    7.796 218.471
+mantaray.netine 249.240.53.144   3 u  289 1024  377   34.782    8.484 212.631
*rilynn.me.uk    81.2.117.228     2 u  765 1024  377   45.665    6.804 142.023
+ntp.thirdlight. 193.67.79.202    2 u  791 1024  377   38.322    9.871 223.397

Они используют разные серверы, потому что они используют серверы из пула NTP.

Я временно добавлю otherbox в конфигурацию этого сервера, чтобы я мог непосредственно измерить смещение времени

$ sudo vi /etc/ntp.conf
 (added `server otherbox`)

$ sudo /sbin/service ntpd restart

$ sudo /usr/sbin/ntpq -p
     remote           refid      st t when poll reach   delay   offset  jitter
==============================================================================
 gamma.h3x.no    78.70.33.22      3 u    4   64    1   34.840   -0.964   0.001
 web.puflet.info 188.138.107.156  3 u    3   64    1   78.148   -1.243   0.001
 alpha.rueckgr.a 129.69.1.153     2 u    2   64    1   61.495   -2.362   0.001
 otherbox.exampl 60.155.73.34     3 u    1   64    1    0.604  -11.286   0.001

Похоже, что временные метки на моих двух серверах отличаются примерно на 11 мс.


Это не так, они независимо получают свое время от ntp-серверов
Пол

@Paul: Смотрите обновление
RedGrittyBrick

Когда вы добавили свой локальный NTP-сервер к /etc/ntp.confклиенту, я предполагаю, что вы сделали это так server 192.168.1.70 iburst. Кроме того, вы удалили все остальные серверы из списка клиентов?
PUK

33

ntpdate -q делает то, что вы хотите.

Пример:

root@host1:~# ntpdate -q host2 
server host2, stratum 4, offset 109.584520, delay 0.77560
17 Apr 21:48:16 ntpdate[28849]: no server suitable for synchronization found

В этом случае серверы имеют разницу около 110 секунд.


Это работает, да, но мне нужен какой-то способ получить более быстрый ответ, чтобы я мог добавить смещение в сценарий сбора данных.
SJG

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.