Визначте різницю у часі між двома серверами Linux


23

Я вирішую проблеми із затримкою у мережі. Це, мабуть, проблематика з ніком або кабелем, але, переглядаючи процес розбору, я переглядав терміни, коли пінг-пакет виходить з мережевої карти та прибуває на інший сервер. Обидва 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

8

Ви також можете зробити наступне на хості1:

root@host1# clockdiff -o host2
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.