2014-12-02 66 views
1

我遇到了某種奇怪的清漆問題,大量的連接卡在CLOSE_WAIT狀態,就像清漆未關閉連接一樣。大量的連接停留在CLOSE_WAIT狀態並帶有清漆

這導致我認爲內核正在等待清漆關閉連接,考慮到這一點,它可能是清漆中的錯誤或從我的角度來看內核。雖然,在深入研究清漆代碼之前,我想讓你們的觀點發現傢伙,並且知道這種症狀是否可能是由其他參數引起的?

顯然,如果你遇到過這個問題並有解決方案,那將會更有幫助。

FYI:

# netstat -pan|grep varnish|awk '/tcp/ {print $6}'|sort|uniq -c 
    35902 CLOSE_WAIT 
    12148 ESTABLISHED 
     3 LISTEN 
+0

這是應用程序中的一個錯誤。不是內核。內核正在等待應用程序關閉連接,並且已經收到來自對等體的關閉。 – EJP 2014-12-02 11:23:29

+0

@EJP除非內核不通知進程它已經接收到FIN。 – superjedi 2014-12-02 11:24:36

+1

快來吧。沒有這樣做的內核會導致QA失敗。 *沒有*會起作用。這是應用程序中的一個錯誤。期。 – EJP 2014-12-04 21:04:59

回答

1

您應檢查其是否在客戶⇄清漆側或清漆⇄後端,也許他們會在後端側,至少這是我的情況。

根據Connections to backend not closing

這是每個設計其實,清漆保持後端連接周圍 如果他們看起來像他們可以重複使用,並且只重溫他們當 嘗試重用他們,所以他們可能在 清漆發現它們已被後端關閉之前持續了相當長的一段時間。

除了掛在四周的插座,它是無害的。

我也會檢查你的後端是否不必要地關閉連接,keepalive(如果你能夠使用它)有很大的幫助。最後,檢查varnishstat -1 |grep backend的輸出以查看清漆是否能夠重新使用後端連接(backend_reuse),以及是否已注意到它們已關閉(backend_toolate)。值應該如此backend_reuse + backend_toolatebackend_recycle