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

Определение, на какой машине пакет / обновление прибыл первым

У меня есть две отдельные виртуальные машины AWS, настроенные в регионе (разные зоны доступности), обе подключены через WebSocket (на Python) к другому балансировщику нагрузки (Cloudfront) того же хост-сервера (также размещенного на AWS) и часто получают небольшие WebSocket полезные нагрузки - каждые 5 мс.

Обе машины получают одинаковые обновления, и я хотел бы измерить, на какую машину сначала приходят обновления / полезные данные / пакеты.

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

Рассмотрите возможность использования Сервис AWS Time Sync и ведение журнала времени прибытия пакетов с последующим сравнением журналов.

Однако для начала просто регистрируйте время прибытия пакетов и используйте обычные команды администратора NTP на экземпляре, чтобы проверить "корневую дисперсию", которая является оценкой ошибки времени между экземпляром и корневым сервером времени. Скорее всего, это меньше миллисекунды, поэтому, если разница во времени прибытия превышает сумму двух корневых дисперсий, вам не нужна служба синхронизации времени.

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

Я предполагаю, что экземпляры ECS по умолчанию запускают NTP, что является правильным IIRC, но я не уверен.

При регистрации времени прибытия пакетов я бы явно включил местное время в сообщение, чтобы быть уверенным, но IIRC это почти то же самое, что и временная метка, которую вы получите в журналах Cloudwatch.