Hi guys
I am new to haproxy & list, my experience with this software is very
good yet.
Got a question about sockets tuning. We have web site running on 10
different httpd with 2 haproxy in front.
We configured 3 IPs on each haproxy, we get about 2200 req/s each, peak
time is 3500 req/s each.
Current load is very low actually on haproxy boxes, but we have noticed
some slow access to the website. Doing analysis we found out that
sometime opening a TCP socket on haproxy box is slower than opening a
socket directly on one of httpd behind.
The actual configuration is quite simple, here is snippet :
global
maxconn 32768
nbproc 8
defaults
log global
retries 3
maxconn 32768
contimeout 5000
clitimeout 50000
srvtimeout 50000
listen weblb1 1.1.1.1:80
bind 1.1.1.2:80
bind 1.1.1.3:80
mode http
balance roundrobin
option forwardfor
option httpchk HEAD / HTTP/1.0
option httpclose
stats enable
server web1 1.1.2.1:80 weight 10 check port 80
..
server web10 1.1.2.10:80 weight 10 check port 80
We put nbprocs to the same amount of CPU cores we have.
We noticed problem by tracing HTTP request with curl, ex:
15:14:13.684549 * About to connect() to www.website.com port 80 (#0)
15:14:13.685620 * Trying 1.1.1.1... connected
--> 3 seconds here to open TCP connection
15:14:16.796281 * Connected to www.website.com (1.1.1.1) port 80 (#0)
15:14:16.797173 > GET / HTTP/1.1
--> httpd replies here in less than 1 second
This issue happens sometime, not always.
My question, can someone point me a direction to look for for sockets
optimization / debugging. I am currently unable to explain why it is
slow, I know this is not hardware related since it is very powerful box.
I believe some tuning will make a big difference. Maybe we have kernel
tuning to do in here, if someone can enlighten me it would be very
appreciated.
Another question :
can I enable stats on a particular IP ?
Thanks and have a nice day
--
Maxime Ducharme
Systems Architect
Techboom Inc