See the following post and replace http with tcp:
I suggest you:
- share the output of
haproxy -vv
- share your configuration
- benchmark with a single active server in your haproxy backend. You may be load-balancing on haproxy here, which could lead to worse performance when each connection hits a different backend server