Hi,Willy,
> You must never have timewaits on a client, only on a server. So if
> on your haproxy box you're seeing timewaits for connections going
> to the backend servers, there's something wrong. Haproxy deploys
> great efforts at avoiding them by doing a setsockopt(SO_LINGER) to
> force the system to close with a reset. If you still get them after
> upgrading, please run strace on the process so that we find what could
> be causing them, as it would be abnormal.
>
It seems that the timewait states occurs in the clients directions.
# netstat -an | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a,S[a]}'
LISTEN 3
FIN_WAIT_1 1558
FIN_WAIT_2 53
SYN_SENT 4
LAST_ACK 780
CLOSING 77
CLOSE_WAIT 52
CLOSED 9
SYN_RCVD 80
TIME_WAIT 7743
ESTABLISHED 7722
My backend interface:
# ifconfig vlan60
vlan60: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=3<RXCSUM,TXCSUM>
ether 00:1b:21:36:62:1b
inet 192.168.130.84 netmask 0xffffff00 broadcast 192.168.130.255
inet 192.168.130.85 netmask 0xffffffff broadcast 192.168.130.85
inet 192.168.130.86 netmask 0xffffffff broadcast 192.168.130.86
media: Ethernet 1000baseT <full-duplex>
status: active
vlan: 60 parent interface: igb1
# netstat -an |grep 192.168.130 |more
tcp4 0 0 192.168.130.85.16416 192.168.130.33.3004
ESTABLISHED
tcp4 0 0 192.168.130.85.15506 192.168.130.33.3004
ESTABLISHED
tcp4 0 0 192.168.130.85.56697 192.168.130.53.3005
ESTABLISHED
tcp4 0 0 192.168.130.85.19907 192.168.130.34.3005
ESTABLISHED
tcp4 0 0 192.168.130.85.18708 192.168.130.34.3005
ESTABLISHED
tcp4 0 0 192.168.130.85.17137 192.168.130.33.3004
ESTABLISHED
tcp4 0 0 192.168.130.85.17950 192.168.130.33.3004
ESTABLISHED
tcp4 0 0 192.168.130.85.19640 192.168.130.34.3005
ESTABLISHED
tcp4 0 0 192.168.130.85.41590 192.168.130.52.3003
ESTABLISHED
tcp4 0 0 192.168.130.85.22277 192.168.130.35.3006
ESTABLISHED
tcp4 0 0 192.168.130.85.36508 192.168.130.52.3002
ESTABLISHED
tcp4 0 0 192.168.130.85.12990 192.168.130.32.3003
ESTABLISHED
tcp4 0 0 192.168.130.85.26643 192.168.130.40.3003
ESTABLISHED
tcp4 0 0 192.168.130.85.51775 192.168.130.53.3004
ESTABLISHED
tcp4 0 0 192.168.130.85.44149 192.168.130.50.3002
ESTABLISHED
tcp4 0 0 192.168.130.85.57427 192.168.130.53.3006
ESTABLISHED
tcp4 0 0 192.168.130.85.42355 192.168.130.50.3002
ESTABLISHED
tcp4 0 0 192.168.130.85.21283 192.168.130.35.3006
ESTABLISHED
tcp4 0 0 192.168.130.85.24548 192.168.130.40.3003
ESTABLISHED
tcp4 0 0 192.168.130.85.23880 192.168.130.35.3006
ESTABLISHED
tcp4 0 0 192.168.130.85.31224 192.168.130.54.3005
ESTABLISHED
tcp4 0 0 192.168.130.85.13662 192.168.130.32.3003
ESTABLISHED
# netstat -an |grep TIME_WAIT |more
tcp4 0 0 114.80.234.108.80 10.100.1.4.2577 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4149 TIME_WAIT
tcp4 0 0 114.80.234.72.80 10.100.1.3.2331 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2576 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4148 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2575 TIME_WAIT
tcp4 0 0 114.80.234.72.80 10.100.1.3.2330 TIME_WAIT
tcp4 0 0 114.80.234.73.80 10.100.1.2.38769 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4147 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2574 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4146 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2573 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4145 TIME_WAIT
tcp4 0 0 114.80.234.72.80 10.100.1.3.2329 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4144 TIME_WAIT
tcp4 0 0 114.80.234.73.80 10.100.1.2.38768 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2572 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4143 TIME_WAIT
tcp4 0 0 114.80.234.72.80 10.100.1.3.2328 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4142 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2571 TIME_WAIT
tcp4 0 0 114.112.66.220.80 221.234.47.81.53770 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4141 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2570 TIME_WAIT
tcp4 0 0 114.80.234.72.80 10.100.1.3.2327 TIME_WAIT
tcp4 0 0 114.80.234.73.80 10.100.1.2.38767 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4140 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2569 TIME_WAIT
tcp4 0 0 220.181.132.156.80 221.234.47.81.1559 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.2.4139 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2568 TIME_WAIT
tcp4 0 0 114.112.66.220.80 10.100.1.4.50176 TIME_WAIT
tcp4 0 0 114.80.234.108.80 10.100.1.4.2567 TIME_WAIT
# haproxy -vv
HA-Proxy version 1.4.25 2014/03/27
Copyright 2000-2014 Willy Tarreau <w...@1wt.eu>
Build options :
TARGET = freebsd
CPU = generic
CC = gcc47
CFLAGS = -g -Wall -O2 -pipe -msse3 -I/usr/local/include
-L/usr/local/lib -fno-strict-aliasing -DFREEBSD_PORTS
OPTIONS = USE_TPROXY=1 USE_PCRE=1
Default settings :
maxconn = 2000, bufsize = 16384, maxrewrite = 8192, maxpollevents = 200
Encrypted password support via crypt(3): yes
Available polling systems :
kqueue : pref=300, test result OK
poll : pref=200, test result OK
select : pref=150, test result OK
Total: 3 (3 usable), will use kqueue.
Simon