調整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/sockstat3 檢視是否有異常日誌: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以上配置在實際生產環境中單機1.7w連線數情況下nginx工作正常。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
高併發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是重要的乙個結構體,必須足夠...