100.000 conexões são muito ... Você está pressionando tanto? Se assim for ... talvez dividindo o frontend de forma que ele se ligue em um ip para conteúdo estático e um ip para o conteúdo do app e então execute as variantes static e app como processos haproxy separados (supondo que você tenha um segundo core / cpu no servidor) ...
Se nada mais, reduzirá o uso ao aplicativo ou aos fluxos estáticos ...
Se eu estou lembrando minha classe de rede 101 corretamente ... HaProxy não deve ser capaz de acessar 100,000
conexões para ws12:8001
ou qualquer outro host backend: port por causa do limite de porta ~ 65536 que está mais próximo 28232
na maioria dos sistemas ( cat /proc/sys/net/ipv4/ip_local_port_range
). Você pode estar exaurindo as portas locais, o que poderia, por sua vez, fazer com que a CPU parasse enquanto aguardava a liberação das portas.
Talvez a redução das conexões máximas para cada back-end para mais perto de 28000 aliviasse o problema? Ou alterar o intervalo de portas locais para ser mais inclusivo?