qualquer que seja a solução, se você instalar um processo para encaminhar dados de fluxo, ele exigirá buffers por conexão. Isso é porque você não pode sempre enviar tudo o que você recebeu, então você tem que manter o excesso em um buffer. Dito isso, o uso da memória dependerá do número de conexões simultâneas. Um grande site está executando o haproxy com configurações padrão em 150000 conexões simultâneas (4 GB de RAM). Se você precisar de mais do que isso, a versão 1.4 permite ajustar o tamanho do buffer sem recompilar. No entanto, tenha em mente que os buffers de kernel por soquete nunca ficarão abaixo de 4 kB por direção e por soquete, portanto, pelo menos 16 kb por conexão. Isso significa que é inútil fazer o haproxy rodar com menos de 8 kB por buffer, já que ele consumirá menos que o kernel.
Além disso, se o seu serviço for puro TCP e um proxy não tiver valor agregado, dê uma olhada nas soluções baseadas em rede, como o LVS. É muito mais barato porque processa pacotes e não precisa manter buffers, portanto, os buffers de soquete descartarão pacotes quando estiverem cheios e poderão ser instalados na mesma máquina que o serviço.
Editar : Javier, processos pré-construídos contando com o sistema operacional para fazer o balanceamento de carga não sc Ale que bem em tudo. O sistema operacional ativa todos os processos quando recebe uma conexão, apenas um deles consegue e todos os outros dormem novamente. Haproxy em multi-pro O modo cess mostra seu melhor desempenho em torno de 4 processos. Em 8 processos, execute a força já começa a cair. O Apache usa um truque legal contra isso, faz um ck em torno do accept () para que apenas um processo esteja aguardando a aceitação. Mas t chapéu mata o recurso de balanceamento de carga do sistema operacional e pára de escala entre 1000 um d 2000 processos. Ele deve usar uma matriz de alguns bloqueios para que alguns processos acorde, mas isso não acontece.