我正在使用自託管WCF服務中的netTcpBinding解決性能問題,並且查看數據包並不清楚發生了什麼。在一個新的連接上,我有時會看到局域網連接的開銷爲200-300毫秒(在同一個交換機上連接了兩臺機器)。 TCP 3次握手很快,但下一個包PSH ACK需要150 + ms。服務器沒有負載,只是這一個請求。NET.TCP(WCF)協議如何在TCP之上工作?
這是由nettcpbiding設置進行控制,還是在服務器上?
我正在使用自託管WCF服務中的netTcpBinding解決性能問題,並且查看數據包並不清楚發生了什麼。在一個新的連接上,我有時會看到局域網連接的開銷爲200-300毫秒(在同一個交換機上連接了兩臺機器)。 TCP 3次握手很快,但下一個包PSH ACK需要150 + ms。服務器沒有負載,只是這一個請求。NET.TCP(WCF)協議如何在TCP之上工作?
這是由nettcpbiding設置進行控制,還是在服務器上?
好像開銷所需的應用程序(雖然似乎高)。在2分鐘內關閉連接的問題是由connectionPoolSettings中的idleTimeout設置引起的。
我不確定什麼樣的性能問題,除了200-300ms偶爾的連接開銷之外。
如果請求是第一次請求,那麼在構建所有內容的情況下,在這些情況下,啓動WCF管道會花費更多的時間。我想知道這是你看到的嗎?
例如,對於新流程主機的第一個請求,您可能會在第一個請求中看到明顯的「命中」。另外需要注意的是IIS(如果您的主機)通常會在閒置20分鐘後循環工作進程。
我不相信任何真正在netTcpBinding元素中的東西都會影響這種行爲(我知道這種行爲)。
該應用程序可能還會在啓動時進行一些工作(填充緩存),這可能會導致延遲。如果它的緩存,它可能還需要偶爾刷新它的緩存,或者有一個緩存未命中並需要獲取額外的數據。
否則,大多數tcp/ip堆調整傾向於在Windows註冊表中。查看T CP/IP Registry Settings瞭解更多信息。
HTH,
Ž
主機不是IIS,是依賴於WCF的服務。問題是200-300毫秒開銷,並且這是一個問題,因爲主機在停止約2分鐘後關閉連接! – GeorgeU 2011-03-16 16:46:25