Hello ,
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 :
version: 1.8.28
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