【问题标题】:Optimize WCF latency?优化 WCF 延迟?
【发布时间】:2011-06-11 11:29:20
【问题描述】:

我正在设计一个分布式系统,并将其部署在 Windows Server 2008 R2 的 1Gb 集群上但我遇到了延迟问题,通过 .NET 完成的正常 Ping() 需要 0.240 毫秒,但 WCF 延迟约为 0.500 毫秒我认为这太高了,因为所有机器都通过一个 1Gbs 交换机本地连接。那么我该如何改善 WCF 延迟。

我使用 TCPBinding、ProtocolBuffer 和 WCF

【问题讨论】:

  • 这个测量是在第一次连接上完成的,还是在后续连接上完成的?你在使用连接池(MaxConnections>1)吗?
  • 至于 ping 我没有使用任何东西,只是 .NET 中的 Ping 类。至于 WCF,我没有编辑任何与连接池相关的内容

标签: .net wcf performance latency


【解决方案1】:

Ping 只是定义在 Internet 层的低级 ICMP 协议,而 TCP 是定义在传输层的更复杂的协议。 ICMP 是不可靠的数据报协议,而 TCP 是可靠的协议,传输开销要高得多,尤其是在建立连接时。

WCF 位于 net.tcp 之上,具有自己的通道堆栈,这又会产生开销。除非您提供非常详细的描述,否则您的帖子不是一个真正的问题。

也只是一个小的澄清:你是说你不喜欢 0.5ms = 0.0005s 的延迟???这意味着 ping 显示您

【讨论】:

  • 不,我的意思是 0.240 毫秒(240 微秒)。我没有从命令行使用 Ping,我使用了 .NET 的 PING 并使用 Stopwatch 测量了时间。我们谈论的是本地网络,而不是中间有路由器和交换机的网络。
  • 在这种情况下不要打扰。这不是您应该处理的延迟。 .NET Ping 仍然发送 ICMP 回显(如控制台 ping)。我会说 0.5ms 的网络通信就足够了,特别是如果它只是纯 ping 的两倍。
猜你喜欢
  • 2018-04-17
  • 2012-05-23
  • 1970-01-01
  • 1970-01-01
  • 2010-11-04
  • 2021-01-05
  • 2022-10-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多