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

2021-08-30 19:12:01 字數 1509 閱讀 6945

調整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是重要的乙個結構體,必須足夠...