|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Коллеги, всем доброго дня! Есть такая проблема, с которой уже бьемся довольно продолжительное количество времени. Суть: необходимо организовать стабильную и качественную систему передачи данных на сервер мониторинга. Машины стоят внутри сети организации и шлют сообщения в формате протокола мониторинговой системы на уровне TCP, на каждое сообщение подобного рода с сервера должно прийти подтверждение о том, что оно получено, также в формате протокола мониторинговой системы. Если агент на клиентской машине не получает данного подтверждения, по истечению некоторого таймаута оно будет отослано снова, что может сформировать очередь на клиентской стороне. Сервер мониторинга стоит в совершенно другой сети и туда открыт только порт 443. Что было сделано: все клиентские машины шлют свои сообщения на специальный концентратор, который "оборачивает" каждое сообщение в HTTPS и устанавливает сессию Request/Response, соответственно, на строне сервера мониторинга стоит приложение, которое "разворачивает" каждый пакет из сессии для дальнейшей обработки и "оборачивает" каждое сообщение-подтверждение со стороны сервера и отсылает его обратно. В сети организации также установлен прокси, собственно, который и перенаправляет все соединения на сервер. Имеем проблему в производительности - то есть по факту у нас обрабатывается 4 сообщения в секунду, в результате получаем задержки в адекватном отображении информации о состоянии устройств клиентов. Пробовали делать многопотосноть подобного решения, но судя по всему, прокси расценивает это как DOS-атаку и глушит все. К сожалению, подробнее ничего не могу сказать о сети организации, так как она не предоставляет такие данные. Нам дали только выход на наш сервер мониторинга. Дайте, по возможности, свои рекомендации и замечания. P.S. Клиентские машины - WinXP + .NET, концентратор - Windows2008 + .NET, сервер мониторинга Win2008 + .NET ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 11:14 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002, А почему бы не попробовать ч/з MSMQ например? Ну или SOA/SOAP? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 12:28 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
mad_nazgul, Спасибо за подсказку, изучаю возможности ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 14:35 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002Если агент на клиентской машине не получает данного подтверждения, по истечению некоторого таймаута оно будет отослано снова, что может сформировать очередь на клиентской стороне. тут подробнее. - TCP гарантирует целостность передачи данных - HTTP - нет, и к тому же медленный Следовательно, чем не устраивает TCP, откуда берутся очереди и размер этих очередей. Т.е. всегда ли доступен сервер чтобы НЕ делать очереди? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 15:18 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123- TCP гарантирует целостность передачи данных - HTTP - нет, и к тому же медленныйЭто как так? HTTP строится поверх TCP. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 15:37 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
НахлобучPetro123- TCP гарантирует целостность передачи данных - HTTP - нет, и к тому же медленныйЭто как так? HTTP строится поверх TCP. поверх = оверхед = медленный. Хотя можно и придраться) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 15:51 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
ключевой вопрос в доступности. И на сколько недоступен. Если недоступен, то неизбежно - очереди и слежение за ними админом. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 15:53 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123Нахлобучпропущено... Это как так? HTTP строится поверх TCP. поверх = оверхед = медленный. Хотя можно и придраться) Это вопрос про целостность. Протокол нижнего уровня гарантирует целостность передачи данных, а верхнего уже нет. :-) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 17:07 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123bender2002Если агент на клиентской машине не получает данного подтверждения, по истечению некоторого таймаута оно будет отослано снова, что может сформировать очередь на клиентской стороне. тут подробнее. - TCP гарантирует целостность передачи данных - HTTP - нет, и к тому же медленный Следовательно, чем не устраивает TCP, откуда берутся очереди и размер этих очередей. Т.е. всегда ли доступен сервер чтобы НЕ делать очереди? Дело в том, что поверх TCP реализована логика протокола мониторинга и она подразумевает получение подтверждения клиентской машиной на каждое сообщение о статусе устройства. Если данное подтверждение (имеется в виду именно подверждение в формате протокола мониторинга) не было получено, то агент считает, что сообщение не было доставлено и пытается его отослать еще раз. За это время, само собой, могут возникнуть еще какие-нибудь статусные сообщения на клиентской машине, что порождает очередь ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 17:19 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123bender2002Если агент на клиентской машине не получает данного подтверждения, по истечению некоторого таймаута оно будет отослано снова, что может сформировать очередь на клиентской стороне. тут подробнее. - TCP гарантирует целостность передачи данных - HTTP - нет, и к тому же медленный Следовательно, чем не устраивает TCP, откуда берутся очереди и размер этих очередей. Т.е. всегда ли доступен сервер чтобы НЕ делать очереди? Не ответил на все вопросы: 1. TCP не устраивает тем, что принимающая часть реализована в составе ISAPI-фильтра, получается, что если переделывать все в TCP, то надо будет озадачиваться еще и изменением системы-приемника. К тому же, изменение политик на стороне прокси внутри организации процедура не самая простая в плане бюрократии 2. Сервер всегда доступен, то есть мы видим, как сообщения с концентратора отправляются и принимаются подтверждения, но получается, что пропускная способность ее очень невысока. А со стороны клиентской машины это все выглядит, как банальный таймаут по коннекту. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 17:25 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002что пропускная способность ее очень невысока ищите конкретнее узкое место. Т.к. imho именно веб-протокол не подходит для большой нагрузки. Какая у вас "большая" надо померить. 4 в секунду - маловато. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 17:40 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123, Я пообщался со своими коллегами в Бельгии (у них реализовано подобное решение), разница состоит в том, что у них установлен HTTP Load Balancer и он распределяет потоки с клиентских машин на 5 разных инстанций концентратора, установленных на одной машине. У них подобных проблем с пропускной способностью нет. Я пытался рассмотреть подобное, но не нашел готовых реализаций Load Balancer под винду, только по *nix, собственно там в Бельгии они так и поставили ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 17:51 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002, ну понятно, либо переделывать всё по новой, либо добавлять машины - масштабировать))). А никсы не так сложны в понимании и админстве как кажется "Оконнику")). Всё таки замерьте маршрут и время прохождения...выложите тут. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 18:21 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123bender2002, ну понятно, либо переделывать всё по новой, либо добавлять машины - масштабировать))). А никсы не так сложны в понимании и админстве как кажется "Оконнику")). Всё таки замерьте маршрут и время прохождения...выложите тут. Не боимся никсов-проблема только в бюрократии: не так просто установить что-то в организации не такая простая процедура, честно говоря, быстрее что-то написать По поводу времени прохождения - в понедельник постараюсь выложить Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
23.08.2013, 20:07 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Постарался собрать статистику по времени прохождения. К сожалению, я располагаю только данными на прикладном уровне (на основе собственных логов). В общем, пауза между запросом и ответом может составлять до 3-х секунд ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 10:58 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002на прикладном уровне это уровень тестировщика системы снаружи. Нужен уровень ниже для нахождения "узкого места". Т.е. логи от программиста или разработчика. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 11:25 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Собственно, это и есть, считай, лог программиста. То есть замерили фактическое время отправки сообщения на уровне приложения-концентратора и приема им ответа ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 13:02 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002Собственно, это и есть, считай, лог программиста. То есть замерили фактическое время отправки сообщения на уровне приложения-концентратора и приема им ответа тогда я лично не пойму, на что уходит 3 сек? Пауза на перекуры? Пишу IMHO. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 13:20 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
Petro123bender2002Собственно, это и есть, считай, лог программиста. То есть замерили фактическое время отправки сообщения на уровне приложения-концентратора и приема им ответа тогда я лично не пойму, на что уходит 3 сек? Пауза на перекуры? Пишу IMHO. После того, как концентратор отправляет реквест, он идет сначала на прокси, затем по сети организации выходит на сервер мониторига (что там находится фактически, я, к сожалению, даже узнать не могу) после получения реквеста сервером мониторинга запускается процедура генерации подтверждения на сообщение, которое по такому же маршруту возвращается на концентратор. 3 секунды - это максимум. Есть отрезки, когда проход по всему маршруту занимает менее 1 секунды ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 13:30 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002что там находится фактически, я, к сожалению, даже узнать не могут.е. протрассировать путь пакетов: Концентратор --> Прокси -->Монитор --> Прокси -->Концентратор = 3 сек ваш админ не может? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 13:50 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
К сожалению, нет. Мне пояснили, что ICMP протокол закрыт на устройствах, потому единственным способом оценки времени маршрута является приложение. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 16:23 |
|
Разработка системы передачи данных мониторинга
|
|||
---|---|---|---|
#18+
bender2002К сожалению, нет. Мне пояснили, что ICMP протокол закрыт на устройствах, потому единственным способом оценки времени маршрута является приложение. тогда тема IMHO в раздел Администрирование ОС. Не имея возможности Оценить узкие места админами, глупо наращивать сервера или "Разрабатывать информационную систему". Удачи! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.08.2013, 20:31 |
|
|
start [/forum/topic.php?fid=33&fpage=17&tid=1547671]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
34ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
69ms |
get tp. blocked users: |
2ms |
others: | 301ms |
total: | 450ms |
0 / 0 |