今天就跟大家聊聊有關(guān)怎樣解決web中出現(xiàn)大量TIME_WAIT問題,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
創(chuàng)新互聯(lián)建站從2013年創(chuàng)立,先為東興等服務(wù)建站,東興等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為東興企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。
新增的一組Apache服務(wù)器上線以來,我用netstat -an命令發(fā)現(xiàn)服務(wù)器中有大量狀態(tài)為TIME-WAIT的TCP連接,于是用/sbin/sysctl -a查看了一下Linux的各項內(nèi)核參數(shù),并翻閱有關(guān)資料,決定修改其中的兩項參數(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
說明:
net.ipv4.tcp_syncookies = 1 #表示開啟SYN Cookies。當(dāng)出現(xiàn)SYN等待隊列溢出時,啟用cookies來處理,可防范少量SYN***,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_tw_reuse = 1 #表示開啟重用。允許將TIME-WAIT sockets重新用于新的TCP連接,默認(rèn)為0,表示關(guān)閉;
net.ipv4.tcp_tw_recycle = 1 #表示開啟TCP連接中TIME-WAIT sockets的快速回收,默認(rèn)為0,表示關(guān)閉。
net.ipv4.tcp_fin_timeout = 30 #表示如果套接字由本端要求關(guān)閉,這個參數(shù)決定了它保持在FIN-WAIT-2狀態(tài)的時間。
再執(zhí)行以下命令,讓修改結(jié)果立即生效:
/sbin/sysctl -p
用以下語句看了一下服務(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從原來的10000多減少到1000左右。處于SYN_RECV等待處理狀態(tài)的sockets為0,原來的為50~300。
下面附上TIME_WAIT狀態(tài)的意義:
客戶端與服務(wù)器端建立TCP/IP連接后關(guān)閉SOCKET后,服務(wù)器端連 接的端口
狀態(tài)為TIME_WAIT
是不是所有執(zhí)行主動關(guān)閉的socket都會進(jìn)入TIME_WAIT狀態(tài) 呢?
有沒有什么情況使主動關(guān)閉的socket直接進(jìn)入CLOSED狀態(tài)呢?
主動關(guān)閉的一方在發(fā)送最后一個 ack 后
就會進(jìn)入 TIME_WAIT 狀態(tài) 停留2MSL(max segment lifetime)時間
這個是TCP/IP必不可少的,也就是“解決”不了的。
也就是TCP/IP設(shè)計者本來是這么設(shè)計的
主要有兩個原因
1。防止上一次連接中的包,迷路后重新出現(xiàn),影響新連接
(經(jīng)過2MSL,上一次連接中所有的重復(fù)包都會消失)
2。可靠的關(guān)閉TCP連接
在主動關(guān)閉方發(fā)送的最后一個 ack(fin) ,有可能丟失,這時被動方會重新發(fā)
fin, 如果這時主動方處于 CLOSED 狀態(tài) ,就會響應(yīng) rst 而不是 ack。所以
主動方要處于 TIME_WAIT 狀態(tài),而不能是 CLOSED 。
TIME_WAIT 并不會占用很大資源的。 還有,如果一方 send 或 recv 超時,就會直接進(jìn)入 CLOSED 狀態(tài)。
看完上述內(nèi)容,你們對怎樣解決web中出現(xiàn)大量TIME_WAIT問題有進(jìn)一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。
標(biāo)題名稱:怎樣解決web中出現(xiàn)大量TIME_WAIT問題
文章轉(zhuǎn)載:http://www.rwnh.cn/article10/ghsodo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)、網(wǎng)站內(nèi)鏈、用戶體驗、網(wǎng)站制作、域名注冊、電子商務(wù)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)