高併發linux核心網路引數調優

2021-05-27 12:41:38 字數 1711 閱讀 4315

調整linux(ubuntu8.0.4)核心引數以便滿足高併發訪問,解決大量time_wait和syn攻擊問題:

1 sudo vi /etc/sysctl.conf

net.ipv4.tcp_fin_timeout = 30

net.ipv4.tcp_keepalive_time = 1200

net.ipv4.route.gc_timeout = 100

net.ipv4.ip_local_port_range = 1024 65000

net.ipv4.tcp_tw_reuse = 1

net.ipv4.tcp_tw_recycle = 1

net.ipv4.tcp_syn_retries = 1

net.ipv4.tcp_synack_retries = 1

net.ipv4.tcp_max_syn_backlog = 262144

net.core.netdev_max_backlog = 262144

net.core.somaxconn = 262144

net.ipv4.tcp_mem = 94500000 915000000 927000000

儲存退出

2 sudo /sbin/sysctl -p

立刻生效(實踐中有遇到不能立刻生效的,需要重啟機器才能生效)

使用如下命令監控當前各狀態連線:

1netstat -n | awk '/^tcp/ end '

2 cat /proc/net/sockstat

3 檢視是否有異常日誌:dmesg

4 檢視當前ip個數和每ip連線數:

netstat -an | grep 80 | awk '' | awk 'begin nf==2 nf==5' | sort | uniq -c | sort -n

#獲取單前會話連線數

grep -o "src=.*dport=[0-9]\" /proc/net/ip_conntrack |awk ''|awk -f= '' |sort |uniq -c | sort -n | awk '(sum += $1); end'

預設值恢復:

net.ipv4.tcp_fin_timeout = 60

net.ipv4.tcp_keepalive_time = 7200

net.ipv4.route.gc_timeout = 300

net.ipv4.ip_local_port_range = 32768 61000

net.ipv4.tcp_tw_reuse = 0

net.ipv4.tcp_tw_recycle = 0

net.ipv4.tcp_syn_retries = 5

net.ipv4.tcp_synack_retries = 5

net.ipv4.tcp_max_syn_backlog = 1024

net.core.netdev_max_backlog = 1000

net.core.somaxconn = 128

net.ipv4.tcp_mem = 853440 1137920 1706880

以上配置在實際生產環境中單機1.7w連線數情況下nginx工作正常。

高併發linux核心網路引數調優

調整linux ubuntu8.0.4 核心引數以便滿足高併發訪問,解決大量time wait和syn攻擊問題 b 1 sudo vi etc sysctl.conf b net.ipv4.tcp fin timeout 30 net.ipv4.tcp keepalive time 1200 net...

高負載系統,核心網路引數的設定 sysctl

net.ipv4.tcp syncookies 1 表示開啟syn cookies。當出現syn等待佇列溢位時,啟用cookies來處理,可防範少量syn攻擊,預設為0,表示關閉 net.ipv4.tcp tw reuse 1 表示開啟重用。允許將time wait sockets重新用於新的tcp...

linux 核心網路雜燴

linux核心網路驅動屬於iso的第二層,資料鏈路層 其中sk buff在資料報的收發中起關鍵性作用,作為資料的載體,經由每一層其資料區域都在變化,關於sk buff相關資料,以下幾篇很不錯,主要講解sk buff的結構以及在每一層的變化過程,學習網路驅動,sk buff是重要的乙個結構體,必須足夠...