怎樣解決web中出現(xiàn)大量TIME_WAIT問(wèn)題

今天就跟大家聊聊有關(guān)怎樣解決web中出現(xiàn)大量TIME_WAIT問(wèn)題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為東興等服務(wù)建站,東興等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢(xún)服務(wù)。為東興企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問(wèn)題。

新增的一組Apache服務(wù)器上線以來(lái),我用netstat -an命令發(fā)現(xiàn)服務(wù)器中有大量狀態(tài)為T(mén)IME-WAIT的TCP連接,于是用/sbin/sysctl -a查看了一下Linux的各項(xiàng)內(nèi)核參數(shù),并翻閱有關(guān)資料,決定修改其中的兩項(xiàng)參數(shù),以達(dá)到減少TCP連接中TIME-WAIT sockets的目的。

vi /etc/sysctl.conf

編輯/etc/sysctl.conf文件,增加四行:

引用


   
   
   net.ipv4.tcp_syncookies = 1 net.ipv4.tcp_tw_reuse = 1 net.ipv4.tcp_tw_recycle = 1 net.ipv4.tcp_fin_timeout = 30

說(shuō)明:

net.ipv4.tcp_syncookies = 1 #表示開(kāi)啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊(duì)列溢出時(shí),啟用cookies來(lái)處理,可防范少量SYN***,默認(rèn)為0,表示關(guān)閉;

net.ipv4.tcp_tw_reuse = 1 #表示開(kāi)啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;

net.ipv4.tcp_tw_recycle = 1 #表示開(kāi)啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。

      net.ipv4.tcp_fin_timeout = 30 #表示如果套接字由本端要求關(guān)閉,這個(gè)參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時(shí)間。


 

再執(zhí)行以下命令,讓修改結(jié)果立即生效:

/sbin/sysctl -p


 

用以下語(yǔ)句看了一下服務(wù)器的TCP狀態(tài):

   
   
   netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'

返回結(jié)果如下:

ESTABLISHED 1423

FIN_WAIT1 1

FIN_WAIT2 262

SYN_SENT 1

TIME_WAIT 962


 

效果:處于TIME_WAIT狀態(tài)的sockets從原來(lái)的10000多減少到1000左右。處于SYN_RECV等待處理狀態(tài)的sockets為0,原來(lái)的為50~300。

下面附上TIME_WAIT狀態(tài)的意義:


 

客戶端與服務(wù)器端建立TCP/IP連接后關(guān)閉SOCKET后,服務(wù)器端連 接的端口

狀態(tài)為T(mén)IME_WAIT


 

是不是所有執(zhí)行主動(dòng)關(guān)閉的socket都會(huì)進(jìn)入TIME_WAIT狀態(tài) 呢?

有沒(méi)有什么情況使主動(dòng)關(guān)閉的socket直接進(jìn)入CLOSED狀態(tài)呢?


 

主動(dòng)關(guān)閉的一方在發(fā)送最后一個(gè) ack 后

就會(huì)進(jìn)入 TIME_WAIT 狀態(tài) 停留2MSL(max segment lifetime)時(shí)間

這個(gè)是TCP/IP必不可少的,也就是“解決”不了的。


 

也就是TCP/IP設(shè)計(jì)者本來(lái)是這么設(shè)計(jì)的

主要有兩個(gè)原因

1。防止上一次連接中的包,迷路后重新出現(xiàn),影響新連接

(經(jīng)過(guò)2MSL,上一次連接中所有的重復(fù)包都會(huì)消失)

2。可靠的關(guān)閉TCP連接

在主動(dòng)關(guān)閉方發(fā)送的最后一個(gè) ack(fin) ,有可能丟失,這時(shí)被動(dòng)方會(huì)重新發(fā)

fin, 如果這時(shí)主動(dòng)方處于 CLOSED 狀態(tài) ,就會(huì)響應(yīng) rst 而不是 ack。所以

主動(dòng)方要處于 TIME_WAIT 狀態(tài),而不能是 CLOSED 。

TIME_WAIT 并不會(huì)占用很大資源的。  還有,如果一方 send 或 recv 超時(shí),就會(huì)直接進(jìn)入 CLOSED 狀態(tài)。

看完上述內(nèi)容,你們對(duì)怎樣解決web中出現(xiàn)大量TIME_WAIT問(wèn)題有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

標(biāo)題名稱(chēng):怎樣解決web中出現(xiàn)大量TIME_WAIT問(wèn)題
文章轉(zhuǎn)載:http://muchs.cn/article10/ghsodo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈用戶體驗(yàn)、網(wǎng)站制作、域名注冊(cè)電子商務(wù)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

網(wǎng)站優(yōu)化排名