Linux下TCP IP核心引數優化

2022-04-11 11:56:26 字數 4450 閱讀 5261

所有的tcp/ip引數都位於/proc/sys/net目錄下(請注意,對/proc/sys/net目錄下內容的修改都是臨時的,任何修改在系統重啟後都會丟失),例如下面這些重要的引數:

引數(路徑+檔案)

描述預設值

優化值/proc/sys/net/core/rmem_default

預設的tcp資料接收視窗大小(位元組)。

229376

256960

/proc/sys/net/core/rmem_max

最大的tcp資料接收視窗(位元組)。

131071

513920

/proc/sys/net/core/wmem_default

預設的tcp資料傳送視窗大小(位元組)。

229376

256960

/proc/sys/net/core/wmem_max

最大的tcp資料傳送視窗(位元組)。

131071

513920

/proc/sys/net/core/netdev_max_backlog

在每個網路介面接收資料報的速率比核心處理這些包的速率快時,允許送到佇列的資料報的最大數目。

1000

2000

/proc/sys/net/core/somaxconn

定義了系統中每乙個埠最大的監聽佇列的長度,這是個全域性的引數。

1282048

/proc/sys/net/core/optmem_max

表示每個套接字所允許的最大緩衝區的大小。

20480

81920

/proc/sys/net/ipv4/tcp_mem

確定tcp棧應該如何反映記憶體使用,每個值的單位都是記憶體頁(通常是4kb)。第乙個值是記憶體使用的下限;第二個值是記憶體壓力模式開始對緩衝區使用應用壓力的上限;第三個值是記憶體使用的上限。在這個層次上可以將報文丟棄,從而減少對記憶體的使用。對於較大的bdp可以增大這些值(注意,其單位是記憶體頁而不是位元組)。

94011  125351  188022

131072  262144  524288

/proc/sys/net/ipv4/tcp_rmem

為自動調優定義socket使用的記憶體。第乙個值是為socket接收緩衝區分配的最少位元組數;第二個值是預設值(該值會被rmem_default覆蓋),緩衝區在系統負載不重的情況下可以增長到這個值;第三個值是接收緩衝區空間的最大位元組數(該值會被rmem_max覆蓋)。

4096  87380  4011232

8760  256960  4088000

/proc/sys/net/ipv4/tcp_wmem

為自動調優定義socket使用的記憶體。第乙個值是為socket傳送緩衝區分配的最少位元組數;第二個值是預設值(該值會被wmem_default覆蓋),緩衝區在系統負載不重的情況下可以增長到這個值;第三個值是傳送緩衝區空間的最大位元組數(該值會被wmem_max覆蓋)。

4096  16384  4011232

8760  256960  4088000

/proc/sys/net/ipv4/tcp_keepalive_time

tcp傳送keepalive探測訊息的間隔時間(秒),用於確認tcp連線是否有效。

7200

1800

/proc/sys/net/ipv4/tcp_keepalive_intvl

探測訊息未獲得響應時,重發該訊息的間隔時間(秒)。

7530

/proc/sys/net/ipv4/tcp_keepalive_probes

在認定tcp連線失效之前,最多傳送多少個keepalive探測訊息。93

/proc/sys/net/ipv4/tcp_sack

啟用有選擇的應答(1表示啟用),通過有選擇地應答亂序接收到的報文來提高效能,讓傳送者只傳送丟失的報文段,(對於廣域網通訊來說)這個選項應該啟用,但是會增加對cpu的占用。11

/proc/sys/net/ipv4/tcp_fack

啟用**應答,可以進行有選擇應答(sack)從而減少擁塞情況的發生,這個選項也應該啟用。11

/proc/sys/net/ipv4/tcp_timestamps

tcp時間戳(會在tcp包頭增加12個位元組),以一種比重發超時更精確的方法(參考rfc 1323)來啟用對rtt 的計算,為實現更好的效能應該啟用這個選項。11

/proc/sys/net/ipv4/tcp_window_scaling

啟用rfc 1323定義的window scaling,要支援超過64kb的tcp視窗,必須啟用該值(1表示啟用),tcp視窗最大至1gb,tcp連線雙方都啟用時才生效。11

/proc/sys/net/ipv4/tcp_syncookies

表示是否開啟tcp同步標籤(syncookie),核心必須開啟了config_syn_cookies項進行編譯,同步標籤可以防止乙個套接字在有過多試圖連線到達時引起過載。11

/proc/sys/net/ipv4/tcp_tw_reuse

表示是否允許將處於time-wait狀態的socket(time-wait的埠)用於新的tcp連線 。01

/proc/sys/net/ipv4/tcp_tw_recycle

能夠更快地**time-wait套接字。01

/proc/sys/net/ipv4/tcp_fin_timeout

對於本端斷開的socket連線,tcp保持在fin-wait-2狀態的時間(秒)。對方可能會斷開連線或一直不結束連線或不可預料的程序死亡。

6030

/proc/sys/net/ipv4/ip_local_port_range

表示tcp/udp協議允許使用的本地埠號

32768  61000

1024  65000

/proc/sys/net/ipv4/tcp_max_syn_backlog

對於還未獲得對方確認的連線請求,可儲存在佇列中的最大數目。如果伺服器經常出現過載,可以嘗試增加這個數字。

2048

2048

/proc/sys/net/ipv4/tcp_low_latency

允許tcp/ip棧適應在高吞吐量情況下低延時的情況,這個選項應該禁用。

0/proc/sys/net/ipv4/tcp_westwood

啟用傳送者端的擁塞控制演算法,它可以維護對吞吐量的評估,並試圖對頻寬的整體利用情況進行優化,對於wan 通訊來說應該啟用這個選項。

0/proc/sys/net/ipv4/tcp_bic

為快速長距離網路啟用binary increase congestion,這樣可以更好地利用以gb速度進行操作的鏈結,對於wan通訊應該啟用這個選項。

1/etc/sysctl.conf是乙個允許你改變正在執行中的linux系統的介面。它包含一些tcp/ip堆疊和虛擬記憶體系統的高階選項,可用來控制linux網路配置,由於/proc/sys/net目錄內容的臨時性,建議把tcpip引數的修改新增到/etc/sysctl.conf檔案, 然後儲存檔案,使用命令「/sbin/sysctl –p」使之立即生效。具體修改方案參照上文:

net.core.rmem_default = 256960  

net.core.rmem_max = 513920

net.core.wmem_default = 256960

net.core.wmem_max = 513920

net.core.netdev_max_backlog = 2000

net.core.somaxconn = 2048

net.core.optmem_max = 81920

net.ipv4.tcp_mem = 131072 262144 524288

net.ipv4.tcp_rmem = 8760 256960 4088000

net.ipv4.tcp_wmem = 8760 256960 4088000

net.ipv4.tcp_keepalive_time = 1800

net.ipv4.tcp_keepalive_intvl = 30

net.ipv4.tcp_keepalive_probes = 3

net.ipv4.tcp_sack = 1

net.ipv4.tcp_fack = 1

net.ipv4.tcp_timestamps = 1

net.ipv4.tcp_window_scaling = 1

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.ip_local_port_range = 1024 65000

net.ipv4.tcp_max_syn_backlog = 2048

**:

Linux之TCPIP核心引數

參考1.linux之tcpip核心引數優化 所有的tcp ip引數都位於 proc sys net目錄下 請注意,對 proc sys net目錄下內容的修改都是臨時的,任何修改在系統重啟後都會丟失 例如下面這些重要的引數 引數 路徑 檔案 描述預設值 優化值 proc sys net core r...

Linux之TCPIP核心引數優化

proc sys net目錄 所有的tcp ip引數都位於 proc sys net目錄下 請注意,對 proc sys net目錄下內容的修改都是臨時的,任何修改在系統重啟後都會丟失 例如下面這些重要的引數 引數 路徑 檔案 描述預設值 優化值 proc sys net core rmem def...

Linux核心 修改TCP IP調優引數

所有的tcp ip調優引數都位於 proc sys net 目錄.例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝 2.proc sys net core wmem max 最大的tcp資料傳送緩衝 3.proc ...