中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

因超多短連接導致的過多TIME_WAIT的處理方案

發布時間:2020-06-27 20:30:39 來源:網絡 閱讀:1214 作者:13348612118 欄目:網絡安全

近期,發現WEB服務器netstat -nap時,超多TIME_WAIT 狀態的連接,每臺WEB超過 2萬,峰值超4萬;導致服務響應變慢 ;


WEB服務器跑的是PHP程序,這些程序需要調用后端的MemCache,mysql,Redis,mongodb以及后端的 http接口服務,其中MemCache、http接口服務的調用量相對較大;


根據BAIDU的結果,分析原因為,PHP為CGI方式,一個頁面請求可能會有幾十次的各種內部調用,程序執行完后,連接就斷開了,根據網絡協議,斷開的連接必然會保持一段時間的TIME_WAIT,默認是保持4分鐘;如果4分鐘內的請求數過高,如超過3萬,本機的TCP端口數必然會不夠用(默認情況下,linux臨時端口號范圍是(32768,61000),本機可用于調用的端口約3萬個),進而導致調用后端服務阻塞,頁面響應變慢;


處理方式:根據以上分析,對OS系統內核參數做修改,啟用TIME_WAIT連接重用,TIME_WAIT連接回收、縮短連接保持時間、增加可用端口數:


#vi /etc/sysctl.conf

    net.ipv4.tcp_tw_reuse = 1                #啟用連接重用

net.ipv4.tcp_tw_recycle = 1              #啟用連接回收

net.ipv4.tcp_fin_timeout = 30            #縮短連接保持時間

net.ipv4.ip_local_port_range=1024 65000  #增加可用端口數,linux默認臨時端口號范圍是(32768,61000)


#sysctl -p                          #修改參數生效;


注意:這里有個坑,需要確認 net.ipv4.tcp_timestamps = 1(這是默認值),net.ipv4.tcp_tw_recycle = 1 這個參數才有效;


另外,net.ipv4.tcp_tw_recycle = 1 這個參數如果是在對公網用戶提供的服務器,不能啟用,如果啟用,會導致其它問題;具體參考 (http://blog.sina.com.cn/s/blog_781b0c850100znjd.html


修改以上參數后,連接數大為降低!!


總結:從以上分析看,主要是內部調用過多,而且又基本上是短連接,導致了大量的TIME_WAIT;

從應用設計上看,應該盡量采用長連接,連接池,KEEPALIVE等技術減少對后端的連接次數,提高連接的效率,這樣可以大大減少連接數,問題也就不存在了!


當然,本案例中,前端調用程序為PHP程序,因PHP本身的特性(CGI試,一個頁面處理完成后,所有相關連接就斷了),導致不太好使用長連接,連接池,KEEPALIVE技術;但仍可以在本頁面請求內部使用,也可以一定程度上減少連接次數;


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

喀喇沁旗| 中卫市| 西宁市| 同心县| 巴林左旗| 阿拉善右旗| 上高县| 故城县| 西宁市| 东乌珠穆沁旗| 邢台县| 兖州市| 平乐县| 涿州市| 邵武市| 望谟县| 新乐市| 灌云县| 来宾市| 元朗区| 海兴县| 临夏市| 青海省| 玛沁县| 三亚市| 武清区| 都兰县| 富宁县| 中方县| 九江市| 东宁县| 霸州市| 东兰县| 五大连池市| 霍邱县| 英超| 三穗县| 石城县| 秦皇岛市| 灌阳县| 康马县|