亚洲一区精品自拍_2021年国内精品久久_男同十八禁gv在线观看_免费观看a级性爱黄片

Article / 文章中心

Linux實例中出現(xiàn)大量CLOSE_WAIT狀態(tài)的TCP連接

發(fā)布時間:2021-02-24 點擊數(shù):1817
問題現(xiàn)象

執(zhí)行以下命令,發(fā)現(xiàn)當前系統(tǒng)中處于CLOSE_WAIT狀態(tài)的TCP連接非常多。

netstat -atn|grep CLOSE_WAIT|wc -l
原因分析

根據(jù)實例上的業(yè)務量判斷CLOSE_WAIT數(shù)量是否超出了正常的范圍。TCP連接斷開時需要進行四次揮手,TCP連接的兩端都可以發(fā)起關閉連接的請求,若對端發(fā)起了關閉連接,但本地沒有關閉連接,那么該連接就會處于CLOSE_WAIT狀態(tài)。雖然該連接已經(jīng)處于半開狀態(tài),但是已經(jīng)無法和對端通信,需要及時的釋放該連接。建議從業(yè)務層面及時判斷某個連接是否已經(jīng)被對端關閉,即在程序邏輯中對連接及時關閉,并進行檢查。

解決方法

編程語言中對應的讀、寫函數(shù)一般包含了檢測CLOSE_WAIT狀態(tài)的TCP連接功能,可通過執(zhí)行以下命令,查看當前實例上處于CLOSE_WAIT狀態(tài)的連接數(shù)。

netstat -an|grep CLOSE_WAIT|wc -l

Java語言和C語言中關閉連接的方法如下:

Java語言

  1. 通過read方法來判斷I/O 。當read方法返回-1時,則表示已經(jīng)到達末尾。
  2. 通過close方法關閉該連接。

C語言

檢查read的返回值。

  • 若等于0,則可以關閉該連接。
  • 若小于0,則查看error,若不是AGAIN,則同樣可以關閉連接。
     
    如果您有其他問題,可以聯(lián)系北京志遠天成阿里云代理商,為您提供一對一專業(yè)全面的技術服務,同時新老阿里云會員,均可享受我公司代理商價格,歡迎咨詢!歡迎咨詢.gif