I configured my HP load balancer with a SPOE frontend filter. This filter requests additional data for the calling IP to a SPOA agent.
The amount of SPOP requests to my SPOA is quite impressive. So I set up a dedicated HP load balancer in front of these agents to balance SPOP requests between many agents.
This load balancer balances requests in tcp mode (round-robin). I can see that every agent backend has the same amount of connections opened. But the amount of bytes exchanged is not balanced. If I dig the metrics of my SPOA agents, I can see that some of them receive much more SPOP requests than the others. I chose to have long TCP sessions opened as the client for this SPOA load balancer is only my own principal load balancer. I want to avoid non necessary close / open connections.
I understand that balancing is done at tcp level, not at SPOP one.
Is there something I am missing in Haproxy reference which would allow a fair balancing of SPOP requests between my SPOA agents ?
Additional detail :
SPOA load balancer config:
global log 127.0.0.1 local1 info nbproc 8 defaults log global option redispatch balance roundrobin timeout connect 20ms option tcpka no option forceclose frontend agent_spoa maxconn 140000 mode tcp timeout client 60s bind *:12346 ssl no-sslv3 crt /etc/ssl/my.pem ciphers [...] no-tls-tickets default_backend server_spoa backend server_spoa timeout server 60s timeout connect 3s server 10.x.x.x:12346 10.x.x.x:12346 check port 12346 send-proxy ... server 10.x.x.x:12346 10.x.x.x:12346 check port 12346 send-proxy