Оптимизировать задержку WCF? - PullRequest
1 голос
/ 11 июня 2011

Я проектирую распределенную систему и развертываю ее в кластере Windows Server 2008 R2 1 Гб. Но у меня есть проблема с задержкой, обычный Ping (), выполняемый через .NET, занимает 0,240 мс, но задержка WCF составляет около 0,500 мс. и я считаю, что это слишком высоко, так как все машины подключены локально через один коммутатор 1Gbs. Итак, как я могу улучшить задержку WCF.

Я использую TCPBinding, ProtocolBuffer с WCF

1 Ответ

1 голос
/ 11 июня 2011

Ping - это протокол ICMP низкого уровня, определенный на интернет-уровне, тогда как TCP - более сложный протокол, определенный на транспортном уровне. ICMP - это ненадежный протокол дейтаграмм, тогда как TCP - это надежный протокол с гораздо более высокими издержками передачи, особенно для установления соединения.

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

Также только небольшое уточнение: Вы говорите, что вам не нравится задержка 0,5 мс = 0,0005 с ??? Это означает, что пинг показывает вам <1 мс. Это выглядит почти нереально, даже если устройства находятся в одной сети! Если вы имеете в виду, что у вас задержка 0,5 с, то мне следует начать с диагностики задержки пинга 0,24 с, поскольку это значения для сервера пинга на другом континенте. У меня 0.024s ping для Google (вероятно, сервер в Европе) и 0.124s для Yahoo. </p>

...