Определите разницу во времени между двумя серверами 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 мс.

RedGrittyBrick
источник
Это не так, они независимо получают свое время от 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
6

Вы также можете сделать следующее на host1:

root@host1# clockdiff -o host2
Грем Мосс
источник