Скачки задержки ZMQ Pub-SubC++

Программы на C++. Форум разработчиков
Ответить
Anonymous
 Скачки задержки ZMQ Pub-Sub

Сообщение Anonymous »

Я использую публикацию ZMQ для передачи сообщений из программы C++ в скрипт Python.
Я передаю около 5000 сообщений в секунду, их вес варьируется от 100 до 4500 байт, в среднем около 300 байт каждое. В среднем я отправляю через этот сокет около 2,5 мегабайт данных в секунду.
Мой сценарий мониторинга работает следующим образом:
  • Привяжите программу C++ к сокету и оставьте ее работающей.
  • Добавьте временную метку к каждому сообщению, исходящему из программы C++.
  • Начать скрипт Python, подключаемся к сокету, получаем сообщение, получаем временную метку и вычитаем временную метку вывода, получаем измерение задержки.
  • Отслеживайте среднюю задержку при прохождении x сообщений.
Моя проблема:
Когда я запускаю сценарий, задержка сокета колеблется около 200 микросекунд. Это соответствует моим ожиданиям и кажется правильным. Однако через 1 минуту средняя задержка составляет около 1,5 миллисекунды, около 10–15 мс через 4 минуты и стабилизируется на уровне около 50 мс через 10 минут.
Если я перезапущу сценарий Python, задержка снова вернется к 200 микросекундам. Я не думаю, что проблема в задержке сообщений, потому что в этом случае задержка продолжала бы увеличиваться, а иногда и уменьшаться, вместо того, чтобы увеличиваться линейно до определенного порога предсказуемым образом.
В чем может быть проблема?
Есть ли способ изменить настройки ZMQ, чтобы попытаться улучшить это, или посмотреть, есть ли у него какая-то внутренняя проблема с задержкой?

Подробнее здесь: https://stackoverflow.com/questions/750 ... ncy-spikes
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C++»