Вверх ↑
Ответов: 655
Рейтинг: 18
#1: 2016-03-25 15:06:19 ЛС | профиль | цитата
Netspirit,

Столкнулся с следующим:

1) Есть TCP сервер
code_37071.txt
Выполняет роль "эмулятора" сетевого контроллера.
2) Есть второй TCP Сервер
code_37072.txt
Выполняет роль WEB сервера..собирает данные с контроллеров и выводит на страницу.

В схеме №2 по сути TCP сервер и 20 клиентов. Если клиенты отключены от схемы №1, то время выдачи web страницы браузеру ~9-12мс.
Если клиенты подключены то время выдачи страницы браузеру ~500-1000мс.
Как тестировал: обращался на IP:port и смотрел в Chrome (нажать F12).

Короче говоря если в 1 схеме есть TCP сервер и несколько TCP клиентов (которые подключаются к чему-либо в сети) то TCP сервер начинает тормозить.
При 20 клиентах при обращении на localhost..тормоза до 500ms для простейшей страницы, при использовании в ЛВС тормоза до 2-3 секунд.
Собственно вопрос...почему так происходит? Не делят потоки\ресурсы между собой?
Можно ли что-то поправить в исходниках чтобы избавится от тормозов.

п.с. почему я вообще начал эту тему:
Мне требуется опрашивать сетевые датчики...они парные 10 пар, т.е. 20шт. При подключении датчик в порт шлет данные раз в 1 секунду, нужно сравнивать данные каждой ноды 1 пары и записывать нужный результат в БД, последовательно их опрашивать не вариант, нужно с каждый работать в отдельном соединении.

Собственно если проблема в компонентах и ее можно исправить\подправить под себя ,прошу вас как автора подсказать как это сделать.
Если это "не баг а фитча" то подскажите как можно избежать тормозов? вынести клиенты в отдельный сервис\приложение\dll?
карма: 0

0
файлы: 2code_37071.txt [284B] [602], code_37072.txt [8.3KB] [1644]