Как протокол NET.TCP (WCF) работает поверх TCP? - PullRequest
1 голос
/ 16 марта 2011

Я устраняю проблему с производительностью netTcpBinding в службе Self-Hosted WCF, и при просмотре пакетов неясно, что происходит.При новых подключениях иногда возникают 200-300 мс при подключении к локальной сети (2 машины подключены к одному коммутатору).TCP 3-х стороннее рукопожатие быстрое, но следующий пакет PSH ACK one занимает 150 + мс.На серверах нет нагрузки, это всего лишь один запрос.

Это контролируется настройками nettcpbiding или это что-то на сервере?

Ответы [ 2 ]

0 голосов
/ 17 марта 2011

Похоже, что приложение требует дополнительной нагрузки (хотя и кажется высокой).Проблема с быстрым закрытием соединений в течение 2 минут была вызвана настройкой idleTimeout в connectionPoolSettings.

http://msdn.microsoft.com/en-us/library/ms788984.aspx

0 голосов
/ 16 марта 2011

Я не уверен, какая проблема с производительностью связана с перебоями в работе, кроме случайных накладных расходов в 200-300 мс при установлении соединения.

Если запрос является запросом в первый раз, раскрутка сантехники WCF в этих случаях займет немного больше, пока все построено. Интересно, это то, что ты видишь?

Например, при первом запросе на новом узле процесса вы, вероятно, увидите заметный «удар» по первому запросу. Следует также отметить, что IIS (если это ваш хост) обычно выполняет цикл рабочего процесса после 20 минут бездействия.

Я не верю, что что-то действительно в элементе netTcpBinding могло бы повлиять на это поведение (что я знаю о себе).

Приложение может также выполнять некоторую работу (заполнение кэша) при запуске, что может объяснять эту задержку. В случае кэширования может также потребоваться время от времени обновлять кэш или иметь пропущенный кэш, и ему нужно извлекать дополнительные данные.

В противном случае большинство настроек стека tcp / ip, как правило, находятся в реестре Windows. Проверьте T Настройки реестра CP / IP для получения дополнительной информации.

НТН,

Z

...