NET.TCP(WCF)协议如何在TCP之上工作?

时间:2011-03-16 16:05:29

标签: wcf nettcpbinding

我正在使用自托管WCF服务中的netTcpBinding来解决性能问题,并且查看数据包的情况并不清楚。在新连接上,我有时会在LAN连接中看到200-300 ms的开销(在同一交换机上连接2台机器)。 TCP 3方式握手很快,但下一个数据包PSH ACK需要150 + ms。服务器中没有负载,只是这一个请求。

这是由nettcpbiding设置控制的,还是服务器上的东西?

2 个答案:

答案 0 :(得分:0)

我不确定你的故障会导致什么性能问题,而不是在建立连接时偶尔会产生200-300毫秒的开销。

如果请求是第一次请求,那么在构建所有内容的情况下,WCF管道的旋转将花费更长时间。我想知道这是不是你看到了什么?

例如,对新进程主机的第一个请求,您可能会在第一个请求上看到明显的“命中”。需要注意的另一件事是IIS(如果那是你的主机)通常会在20分钟不活动后循环一个工作进程。

我不相信netTcpBinding元素中的任何内容都会影响这种行为(我知道这种行为)。

应用程序也可能在启动时做了一些工作(填充缓存),可以解决这个延迟。如果是缓存,它可能还需要偶尔刷新缓存,或者缓存未命中并需要获取其他数据。

否则,大多数tcp / ip堆栈调整往往在Windows注册表中。查看T CP/IP Registry Settings了解更多信息。

HTH,

ž

答案 1 :(得分:0)

应用程序似乎需要开销(虽然看起来很高)。连接在2分钟内快速关闭的问题是由于connectionPoolSettings中的idleTimeout设置。

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