Recientemente hemos estado experimentando problemas con nuestra configuración Varnish (3x) -> Apache (3x), lo que resulta en un gran aumento en las SYN_SENT
conexiones.
El pico en sí se debe a la cantidad de tráfico nuevo que llega al sitio (no un DDOS de ningún tipo), y parece que nuestras máquinas Varnish están teniendo problemas para reenviar el tráfico a los servidores de fondo (la caída del tráfico de Apache se correlaciona con los picos en los barnices). ), congestionando el conjunto de puertos disponibles con SYN_SENT
.
Keep-Alives están habilitados en Apache (15s).
¿De qué lado es la culpa? La cantidad de tráfico es significativa, pero de ninguna manera debería causar que dicha configuración (3x máquinas de interfaz de barniz, 3x servidores Apache back-end) se bloquee.
Por favor ayuda.
La captura de pantalla de Munin para las conexiones a través del firewall está aquí .
Barniz
~$ 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
/etc/sysctl.conf (Barniz)
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
apache
netstat -an|awk '/tcp/ {print $6}'|sort|uniq -c
11 CLOSE_WAIT
286 ESTABLISHED
38 FIN_WAIT2
14 LISTEN
7220 TIME_WAIT
/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
SYN_SENT
estadísticas altas es el firewall; ¿Estás diciendo que parece que el firewall es el cuello de botella?