閱讀109 返回首頁    go 中電雲集


linux內核中管理TCP偵聽隊列長度參數:somaxconn

在linux中,/proc/sys/net/core/somaxconn這個參數,

  看下其解析:

  對於一個TCP連接,Server與Client需要通過三次握手來建立網絡連接.當三次握手成功後,

  我們可以看到端口的狀態由LISTEN轉變為ESTABLISHED,接著這條鏈路上就可以開始傳送數據了.

  每一個處於監聽(Listen)狀態的端口,都有自己的監聽隊列.監聽隊列的長度,與如下兩方麵有關:

  - somaxconn參數.

  - 使用該端口的程序中listen()函數.

  1. 關於somaxconn參數:

  定義了係統中每一個端口最大的監聽隊列的長度,這是個全局的參數,默認值為1024,具體信息為:

  Purpose:

  Specifies the maximum listen backlog.

  Values:

  Default: 1024 connections

  Range: 0 to MAXSHORT

  Type: Connect

  Diagnosis:

  N/A

  Tuning

  Increase this parameter on busy Web servers to handle peak connection rates.

  看下FREEBSD的解析:

  限製了接收新 TCP 連接偵聽隊列的大小。對於一個經常處理新連接的高負載 web服務環境來說,默認的 128 太小了。 大多數環境這個值建議增加到 1024 或者更多。 服務進程會自己限製偵聽隊列的大小(例如 sendmail(8) 或者 Apache), 常常在它們的配置文件中有設置隊列大小的選項。大的偵聽隊列對防止拒絕服務 DoS 攻擊也會有所幫助。

最後更新:2017-01-04 22:34:54

  上一篇:go configure: error: no acceptable C compiler found in $PATH
  下一篇:go 配置Apache James郵件服務器