>> Ok, you may be hitting a bug. Can you provide haproxy -vv output? >> > > > What do you mean? I get the following warning when trying to use this > option in tcp backend/frontend:
Yes I know (I didn't realize you are using tcp mode). I don't mean the warning is the bug, I mean the tcp mode is supposed to not cause any delays by default, if I'm not mistaken. You are running freebsd, so splicing (Linux) can't be an issue either. Is strace available on your OS (afaik 64bit freebsd doesn't have strace)? Can you try disabling kqueue [1], to see if the behavior changes? If not, try disabling poll as well [2]. That way haproxy falls back to select(). Having all syscalls (strace) and tcpdumps from the front and backend traffic would be helpful. Especially interesting would be if haproxy sets TCP_NODELAY and MSG_MORE. It should set the former, but not the latter. Regards, Lukas [1] http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#3.2-nokqueue [2] http://cbonte.github.io/haproxy-dconv/configuration-1.5.html#nopoll