網絡內核參數優化設置

配置文件

/etc/sysctl.conf

生效

sysctl -p
使配置文件生效

部分參數說明

根據需要自行選取設置

######################## cat /proc/sys/net/core/somaxconn
#默認值:128
#作用:已經成功建立連接的套接字將要進入隊列的長度
net.core.somaxconn = 65535

#Centos因內存 可用大小不足,被killed的解決辦法
#1:允許,不做限制的超售,當然這個也不是無限大,還受到尋址空間的限制,32位系統最大可能只有4G,64位系統大概16T左右。
vm.overcommit_memory = 1

######################## cat /proc/sys/net/ipv4/ip_local_port_range
#默認值:32768 61000
#作用:可用端口的範圍
net.ipv4.ip_local_port_range = 1024 65535

######################## cat /proc/sys/net/core/rmem_max
#默認值:212992
#作用:最大的TCP數據接收窗口大小(字節)
net.core.rmem_max=536870912

######################## cat /proc/sys/net/core/wmem_max
#默認值:212992
#作用:最大的TCP數據發送窗口大小(字節)
net.core.wmem_max= 134217728

######################## cat /proc/sys/net/ipv4/tcp_rmem
#默認值:4096 87380 6291456
#作用:socket接收緩衝區內存使用的下限 警戒值 上限
net.ipv4.tcp_rmem=4096 87380 16777216

######################## cat /proc/sys/net/ipv4/tcp_wmem
#默認值:4096 16384 4194304
#作用:socket發送緩衝區內存使用的下限 警戒值 上限
net.ipv4.tcp_wmem=4096 65536 16777216

######################## cat /proc/sys/net/ipv4/tcp_fin_timeout
#默認值:60
#作用:TCP時間戳
net.ipv4.tcp_fin_timeout = 10

######################## cat /proc/sys/net/ipv4/tcp_tw_reuse
#默認值:0
#作用:針對TIME-WAIT,做爲客戶端可以啓用(例如,作爲nginx-proxy前端代理,要訪問後端的服務)
net.ipv4.tcp_tw_reuse = 1

######################## cat /proc/sys/net/ipv4/tcp_timestamps
#默認值:1
#作用:TCP時間戳
net.ipv4.tcp_timestamps = 0

#啓用 RFC 1323 定義的 window scaling;要支持超過 64KB 的窗口,必須啓用該值
net.ipv4.tcp_window_scaling = 0

#####################################
#啓用有選擇的應答(Selective Acknowledgment),這可以通過有選擇地應答亂序接收到的報文來提高性能(這樣可以讓發送者只發送丟失的報文段);(對於廣域網通信來說)這個選項應該啓用,但是這會增加對 CPU 的佔用。
net.ipv4.tcp_sack = 0

######################## cat /proc/sys/net/core/netdev_max_backlog
#默認值:1000
#作用:網卡設備將請求放入隊列的長度
net.core.netdev_max_backlog = 120000

#默認情況下一個tcp連接關閉後,把這個連接曾經有的參數比如慢啓動門限snd_sthresh,擁塞窗口snd_cwnd 還有srtt等信息保存到dst_entry中, 只要dst_entry 沒有失效,下次新建立相同連接的時候就可以使用保存的參數來初始化這個連接.通常情況下是關閉的。
net.ipv4.tcp_no_metrics_save=1

######################## cat /proc/sys/net/ipv4/tcp_syncookies
#默認值:1
#作用:是否打開SYN Cookie功能,該功能可以防止部分SYN攻擊
net.ipv4.tcp_syncookies = 1

######################## cat /proc/sys/net/ipv4/tcp_max_orphans
#默認值:16384
#作用:orphans的最大值
net.ipv4.tcp_max_orphans = 262144

######################## cat /proc/sys/net/ipv4/tcp_max_syn_backlog
#默認值:128
#作用:增大SYN隊列的長度,容納更多連接
net.ipv4.tcp_max_syn_backlog = 262144

###########################
#默認值是5
對於一個新建連接,內核要發送多少個 SYN 連接請求才決定放棄。不應該大於255,默認值是5,對應於180秒左右時間。(對於大負載而物理通信良好的網絡而言,這個值偏高,可修改爲2.這個值僅僅是針對對外的連接,對進來的連接,是由tcp_retries1 決定的)
net.ipv4.tcp_syn_retries = 2

#########################
#默認值是5
對於遠端的連接請求SYN,內核會發送SYN + ACK數據報,以確認收到上一個 SYN連接請求包。這是所謂的三次握手( threeway handshake)機制的第二個步驟。這裏決定內核在放棄連接之前所送出的 SYN+ACK 數目。不應該大於255,默認值是5,對應於180秒左右時間。(可以根據上面的tcp_syn_retries來決定這個值)
net.ipv4.tcp_synack_retries = 2
######################################
net.ipv4.udp_mem=262144 327680 393216
##########################

內容參數自網絡上,如有不妥請告知。謝謝!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章