Hi,
I'm running FreeBSD 12 as a load balancer (HAProxy). However, when my application slows down and TCP connections cannot be processed fast enough, the server becomes completely unreachable – TCP, ICMP, CARP, everything IP-related is 100% down.
At first I've discovered the usual messages:
This was fixed by increasing kern.ipc.soacceptqueue to 4096, now these messages are gone.
Unfortunately the server still becomes 100% unreachable when several thousand connections hit the server (but only in situations where my application is too slow to process them).
I'd like to avoid this, the server should remain reachable in this situation, especially the other services that do not receive thousands of connections. I guess I have to increase some tuning parameters, but I can't figure out which one. No kernel messages, nothing in the logs.
Any idea how to debug/analyze this?
FWIW, the specs: Xeon E5 CPU and Intel X540 NIC (ix).
Regards
- Frank
I'm running FreeBSD 12 as a load balancer (HAProxy). However, when my application slows down and TCP connections cannot be processed fast enough, the server becomes completely unreachable – TCP, ICMP, CARP, everything IP-related is 100% down.
At first I've discovered the usual messages:
Code:
kernel: sonewconn: pcb 0xfffff80072ff11e8: Listen queue overflow: 193 already in queue awaiting acceptance (3980 occurrences)
This was fixed by increasing kern.ipc.soacceptqueue to 4096, now these messages are gone.
Unfortunately the server still becomes 100% unreachable when several thousand connections hit the server (but only in situations where my application is too slow to process them).
I'd like to avoid this, the server should remain reachable in this situation, especially the other services that do not receive thousands of connections. I guess I have to increase some tuning parameters, but I can't figure out which one. No kernel messages, nothing in the logs.
Any idea how to debug/analyze this?
FWIW, the specs: Xeon E5 CPU and Intel X540 NIC (ix).
Regards
- Frank