調整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.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
儲存退出
[b]2 sudo /sbin/sysctl -p[/b]
立刻生效(實踐中有遇到不能立刻生效的,需要重啟機子才能生效)
使用如下命令監控當前各狀態連線:
[b]1 netstat -n | awk '/^tcp/ end '[/b]
[b]2 cat /proc/net/sockstat[/b]
[b]3 檢視是否有異常日誌:dmesg[/b]
[b]4 檢視當前ip個數和每ip連線數:[/b]
netstat -an | grep 80 | awk '' | awk 'begin nf==2 nf==5 ' | sort | uniq -c | sort -n
預設值恢復:
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工作正常。
伺服器優化推薦參考文章:[url=
高併發linux核心網路引數調優
調整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.ipv...
高負載系統,核心網路引數的設定 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是重要的乙個結構體,必須足夠...