2011-06-11 85 views
1

我正在設計一個分佈式系統,並將其部署在1Gb羣集的Windows Server 2008 R2上。但是,我有延遲問題,通過.NET完成的正常Ping()需要0.240ms,但WCF延遲大約爲0.500ms,我相信這太高了,因爲所有機器都通過一個1Gbs交換機本地連接。所以我如何改善WCF延遲。優化WCF延遲?

我使用TCPBinding,ProtocolBuffer與WCF

+0

該測量是在第一個連接還是後續連接上完成的?你在使用連接池嗎('MaxConnections'> 1)? – Brook 2011-06-11 13:05:13

+0

至於ping,我沒有使用anythnig,只是.NET中的Ping類。至於WCF,我沒有編輯任何與連接池相關的東西。 – Haytham 2011-06-11 17:08:28

回答

1

平是在互聯網層定義只是低電平ICMP協議而TCP是在傳輸層中定義更復雜的協議。 ICMP是不可靠的數據報協議,而TCP是可靠的協議,具有更高的傳輸開銷,特別是對於建立連接。

WCF位於net.tcp的頂部,它自己的通道堆棧又有開銷。除非你顯示非常詳細的描述你如何測試通信,否則你的帖子不是一個真正的問題。

也只是很小的說明:你是說你不喜歡0.5ms = 0.0005s的延遲?這意味着ping向您顯示1ms的<。即使設備在同一網絡中,它看起來也是不切實際的!如果你的意思是你的延遲爲0.5秒,那麼我應該從診斷ping等待時間0.24s開始,因爲這是另一個大陸ping服務器的值。我有谷歌0.024s ping(可能在歐洲服務器)和0.124s到雅虎。

+0

不,我的意思是0.240ms(240微秒)。我沒有從命令行使用Ping,我使用了.NET中的PING,並使用Stopwatch I測量了時間。我們談論的是本地網絡而不是Web,路由器和交換機之間。 – Haytham 2011-06-11 17:06:32

+0

在這種情況下不要打擾。這不是你應該處理的延遲。 .NET Ping仍然發送ICMP回顯(如控制檯ping)。我認爲0.5ms的網絡通信足夠好,特別是如果它只是純ping的兩倍。 – 2011-06-11 18:55:16