LINUX.ORG.RU

Случайные задержки откликов сервера


0

0

Имеется сервер Modbus TCP собственной разработки. Необходимо посылать серверу запросы с частотой 10мс. На основную массу запросов (>99.9%) время отклика сервера составляет ~500мкс, но время отклика на некоторые запросы однократо увеличивается до нескольких десятков миллисекунд. Два хоста соединены напрямую медным крос-кабелем. Как избавиться от этих случайных задержек? Помогите решить проблему.

anonymous

Ответ на: комментарий от anonymous

OS: Fedora Core 6, ядро 2.6.25.4-rt6 (пропатчено RT-PREEMPTом) Не уверен, что этот патч сделал ядро действительно реал-тайм, т.к. время отклика в приложении уменьшилось до 100мкс, но ситуация с сетевыми задержками не улучшилась. Может быть есть какие либо параметры ядра или сокета, которые позволят стабилизировать время отклика?

anonymous
()

Если верить википедии, Modbus TCP работает над TCP/IP, верно? Обычно TCP/IP используется над ненадёжными каналами, где доставка не гарантирована, да и timing самой сети тоже не всегда жёсткий. Тот же Ethernet при обнаружении коллизий засыпает на какое-то время (к сожалению, не знаю, на какое). Может, это просто естественные задержки или потери пакетов вашей сети?

alexsaa
()
Ответ на: комментарий от alexsaa

PS. увы, лично для меня слово "медный кросс-кабель" не значит чего-то конкретного ни в пользу Ethernet, ни в пользу RS-232.

alexsaa
()
Ответ на: комментарий от alexsaa

Modbus TCP работает над TCP/IP. Проверил на localhoste, исключив тем самым канальный уровень (Ethernet): ситуация таже

anonymous
()
Ответ на: комментарий от anonymous

Я бы сделал тест для замера задержек на localhost при работе напрямую через tcp, через udp и через пайпы. Сервер бы сделал простейший, типа echo. Тогда прояснится, где эти задержки появляются - в tcp, в сети или в планировании процессорного времени.

alexsaa
()
Ответ на: комментарий от anonymous

>пропатчено RT-PREEMPTом

Не уверен, что это жесткое рт.. =\ Может кто подскажет?

Ethernet не предполагает временных ограничений на передачу данных. Может стОит посмотреть в сторону чего-то вроде token ring? Ну это когда починешь суть вопроса. )

И совсем спешное - рт-приоритет не забыл задать? %)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.