1

我正在对自托管 WCF 服务中的 netTcpBinding 性能问题进行故障排除,并且查看数据包并不清楚发生了什么。在新连接上,我有时会在 LAN 连接中看到 200-300 毫秒的开销(两台机器连接在同一交换机上)。TCP 3 路握手很快,但下一个数据包 PSH ACK 需要 150+ms。服务器没有负载,只是这一个请求。

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

4

2 回答 2

0

除了建立连接时偶尔会出现 200-300 毫秒的开销之外,我不确定您遇到的性能问题是什么。

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

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

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

应用程序也可能在启动时做一些工作(填充缓存),这可能会导致延迟。如果它的缓存,它可能还需要偶尔刷新它的缓存,或者缓存未命中并需要获取额外的数据。

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

高温下,

Z

于 2011-03-16T16:24:03.633 回答
0

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

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

于 2011-03-16T22:28:10.030 回答