Já tentou usar uma ferramenta de teste mais confiável que a AB? Você pode achar que é a própria AB atingindo um teto ao invés de HAProxy. Considere o uso do Apache jMeter ou de um aplicativo de teste de carga de estado adequado.
Keepalives no Apache provavelmente estão mascarando / inclinando os resultados AB, dando a você a discrepância que você vê,
Você deve postar o conteúdo de netstat
durante um teste de carga para que possamos estabelecer os estados de conexão em uso e ajustar adequadamente as configurações com base nisso.
No entanto, você deve ser capaz de aumentar um pouco o desempenho adicionando as seguintes opções à sua seção de padrões:
option tcp-smart-accept
option tcp-smart-connect
Há uma discussão muito boa que reflete algumas de suas preocupações aqui, link
É um pouco complicado demais para diagnosticar remotamente. Mas se o Apache é capaz de atingir esses níveis de reqs / s, é improvável que seja um nível de kernel ou configuração de pilha TCP / IP. Então, seu foco seria melhor atendendo a sua configuração do HAProxy.