use*_*997 8 networking varnish tcp network-traffic apache-2.2
最近,我们的 Varnish (3x) -> Apache (3x) 设置出现问题,导致SYN_SENT连接激增。
峰值本身是由于访问站点的新流量(不是任何类型的 DDOS),而且我们的 Varnish 机器似乎在将流量转发到后端服务器时遇到问题(Apache 流量下降与清漆峰值相关) ),使可用端口池拥塞SYN_SENT。
在 Apache 上启用 Keep-alives(15 秒)。
错在哪一边?流量很大,但无论如何都不会导致这种设置(3 个 Varnish 前端机器,3 个后端 Apache 服务器)停止。
请帮忙。
通过防火墙连接的 Munin 屏幕截图在这里。
漆
~$ netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
9 CLOSE_WAIT
12 CLOSING
718 ESTABLISHED
39 FIN_WAIT1
1714 FIN_WAIT2
76 LAST_ACK
12 LISTEN
256 SYN_RECV
6124 TIME_WAIT
Run Code Online (Sandbox Code Playgroud)
/etc/sysctl.conf(清漆)
net.ipv4.netfilter.ip_conntrack_max = 262144
net.ipv4.netfilter.ip_conntrack_tcp_timeout_syn_recv = 60
net.ipv4.ip_local_port_range = 1024 65536
net.core.rmem_max = 16777216
net.core.wmem_max = 16777216
net.ipv4.tcp_rmem=4096 87380 16777216
net.ipv4.tcp_wmem=4096 65536 16777216
net.ipv4.tcp_tw_recycle = 1
net.ipv4.tcp_tw_reuse = 0
net.ipv4.tcp_fin_timeout = 30
Run Code Online (Sandbox Code Playgroud)
阿帕奇
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
11 CLOSE_WAIT
286 ESTABLISHED
38 FIN_WAIT2
14 LISTEN
7220 TIME_WAIT
Run Code Online (Sandbox Code Playgroud)
/etc/sysctl.conf (Apache)
vm.swappiness=10
net.core.wmem_max = 524288
net.core.wmem_default = 262144
net.core.rmem_default = 262144
net.core.rmem_max = 524288
net.ipv4.tcp_rmem = 4096 262144 524288
net.ipv4.tcp_wmem = 4096 262144 524288
net.ipv4.tcp_mem = 4096 262144 524288
net.ipv4.tcp_fin_timeout = 30
net.ipv4.tcp_max_syn_backlog = 16384
net.ipv4.tcp_keepalive_time = 30
net.ipv4.conf.default.rp_filter = 0
net.ipv4.conf.all.rp_filter = 0
net.core.somaxconn = 2048
net.ipv4.conf.lo.arp_ignore=8
net.ipv4.conf.all.arp_ignore=1
net.ipv4.conf.all.arp_announce=2
vm.swappiness = 0
kernel.sysrq=1
kernel.panic = 30
Run Code Online (Sandbox Code Playgroud)
在 Varnish 服务器上,尝试更改这两个参数:
net.ipv4.tcp_tw_recycle = 0
net.ipv4.tcp_tw_reuse = 1
Run Code Online (Sandbox Code Playgroud)
tw_reuse 将允许它重用 TIME_WAIT 中的连接。
tw_recycle 可能会导致负载均衡器等出现问题。
| 归档时间: |
|
| 查看次数: |
2247 次 |
| 最近记录: |