linux 核心引數調整優化網路

2021-07-07 10:54:54 字數 2546 閱讀 6602

**:

linux系統核心設定優化tcp網路,# vi /etc/sysctl.conf,新增以下內容

net.ipv4.tcp_syncookies = 1  

表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉;

net.ipv4.tcp_tw_reuse = 1  

表示開啟重用。允許將time-wait sockets重新用於新的tcp連線,預設為0,表示關閉;

net.ipv4.tcp_tw_recycle = 1  

表示開啟tcp連線中time-wait sockets的快速**,預設為0,表示關閉。

net.ipv4.tcp_fin_timeout = 30  

表示如果套接字由本端要求關閉,這個引數決定了它保持在fin-wait-2狀態的時間。

net.ipv4.tcp_keepalive_time = 1200 

表示當keepalive起用的時候,tcp傳送keepalive訊息的頻度。預設是2小時

net.ipv4.tcp_keepalive_intvl = 30 

net.ipv4.tcp_keepalive_probes = 3 

上面兩行意思是,如果probe 3次(每次30秒)不成功,核心才徹底放棄。

原來的預設值為,顯然太大:

tcp_keepalive_time = 7200 seconds (2 hours)

tcp_keepalive_probes = 9

tcp_keepalive_intvl = 75 seconds

net.ipv4.ip_local_port_range = 1024   65000  

表示用於向外連線的埠範圍。預設情況下很小:32768到61000,改為1024到65000。

net.ipv4.tcp_max_syn_backlog = 8192  

表示syn佇列的長度,預設為1024,加大佇列長度為8192,可以容納更多等待連線的網路連線數。

net.ipv4.netdev_max_backlog = 1000   

表示進入包的最大裝置佇列,預設300,改大

net.core.tcp_max_tw_buckets = 5000

表示系統同時保持time_wait套接字的最大數量,如果超過這個數字,time_wait套接字將立刻被清除並列印警告資訊。預設為180000,改為5000。對於apache、nginx等伺服器,上幾行的引數可以很好地減少time_wait套接字數量,但是對於squid,效果卻不大。此項引數可以控制time_wait套接字的最大數量,避免squid伺服器被大量的time_wait套接字拖死。

另外可以參考優化核心配置:

/proc/sys/net/core/wmem_max   最大socket寫buffer,可參考的優化值:873200

/proc/sys/net/core/rmem_max    最大socket讀buffer,可參考的優化值:873200

/proc/sys/net/ipv4/tcp_wmem    tcp寫buffer,可參考的優化值: 8192 436600 873200

/proc/sys/net/ipv4/tcp_rmem      tcp讀buffer,可參考的優化值: 32768 436600 873200

/proc/sys/net/ipv4/tcp_mem

同樣有3個值,意思是:

net.ipv4.tcp_mem[0]:低於此值,tcp沒有記憶體壓力.

net.ipv4.tcp_mem[1]:在此值下,進入記憶體壓力階段.

net.ipv4.tcp_mem[2]:高於此值,tcp拒絕分配socket.

上述記憶體單位是頁,而不是位元組.

可參考的優化值是:786432 1048576 1572864

/proc/sys/net/core/somaxconn

listen()的預設引數,掛起請求的最大數量.預設是128.對繁忙的伺服器,增加該值有助於網路效能.

可調整到256.

/proc/sys/net/core/optmem_max

socket buffer的最大初始化值,預設10k.

/proc/sys/net/ipv4/tcp_retries2

tcp失敗重傳次數,預設值15,意味著重傳15次才徹底放棄.可減少到5,以盡早釋放核心資源.

還有乙個重要引數:net.core.somaxconn    表示socket監聽(listen)的backlog上限,是socket的監聽佇列,當乙個請求(request)尚未被處理或建立時,他會進入backlog。而socket server可以一次性處理backlog中的所有請求,處理後的請求不再位於監聽佇列中。當server處理請求較慢,以至於監聽佇列被填滿後,新來的請求會被拒絕。

該引數預設值128。在高突發的請求中可能會導致鏈結超時或者觸發重傳。比如nginx 定義ngx_listen_backlog預設到511, 卻由於我們引數未曾優化會限制到128,顯然這裡限制了nginx的backlog,需要優化

net.core.somaxconn = 

32768

linux 核心引數調整說明

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

linux 核心引數調整說明

linux linux核心 tcporacle 終端網路 linux 核心引數調整說明 所有的tcp ip調優引數都位於 proc sys net 目錄。例如,下面是最重要的一些調優引數,後面是它們的含義 1.proc sys net core rmem max 最大的tcp資料接收緩衝。2.pro...

Linux 系統調整核心引數

核心優化 linux系統 核心 shell 應用程式 針對業務服務應用而進行的系統核心引數調整 主要是 etc sysctl.conf檔案 1.vim etc sysctl.conf 2.sysctl p 修改的引數生效 另 sysctl.conf下檔案的預設引數在 proc sys net ipv...