關於lvs的activeconn超級大的問題

      ActiveConn是活動連接數,也就是tcp連接狀態的ESTABLISHED;InActConn是指除了ESTABLISHED以外的,所有的其 它狀態的tcp連接.那既然這樣,爲什麼從lvs裏看的ActiveConn會比在真實機上通過netstats看到的ESTABLISHED高很多呢? 原來lvs自身也有一個默認超時時間.可以用ipvsadm -L --timeout查看,默認是900 120 300,分別是TCP TCPFIN UDP的時間.也就是說一條tcp的連接經過lvs後,lvs會把這臺記錄保存15分鐘,而不管這條連接是不是已經失效!所以如果你的服務器在15分鐘以 內有大量的併發請求連進來的時候,你就會看到這個數值直線上升.
      我們看lvs的這個連接數是想知道現在的每臺機器的真實連接數,舉個例子:比如你的lvs是用來負載網站,用的模式是dr,後臺的web server用的nginx.這時候一條請求過來,在程序沒有問題的情況下,一條連接最多也就五秒就斷開了.這時候你可以這樣設置:ipvsadm --set 5 10 300.設置tcp連接只保持5秒中.如果現在ActiveConn很高你會發現這個數值會很快降下來,直到降到和你用nginx的status看當前連 接數的時候差不多.你可以繼續增加或者減小5這個數值,直到真實機的status連接數和lvs裏的ActiveConn一致.
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章