Como forcast a especificação de um balanceador de carga do Linux?

4

Eu gostaria de criar um balanceador de carga do Linux com o SSL sem carga com sessões fixas. Eu gostaria de fazer isso com Pound ou Pound e HAProxy. Eu não fiz isso antes, e eu tenho vontade de aprender sobre HAProxy e Pound por um tempo agora. Por fim, tenho um pequeno caso de uso para usar como desculpa para sujar as mãos.

O site é um fórum com um pico de ~ 4Mbps de taxa de transferência, que é um monte de posts e leituras eu acho! Por isso, não quero um dispositivo de alto rendimento, estou mais preocupado com os usuários simultâneos.

Eu tenho as seguintes consultas:

  1. Onde existe a maior parte da carga de trabalho no balanceador de carga, a CPU está decodificando o tráfego SSL ou as sessões de armazenamento em cache de RAM para sessões fixas?
  2. Seguindo a consulta 1, tenho um servidor sobressalente que gostaria de usar, mas como posso relacionar a especificação de hardware de servidor necessária ao desempenho de aplicativos da Web necessário?

    Eu tenho um pequeno servidor de 1u (PowerEdge 1850), com 2x76GB de 10k Ultra 320 SCSI em RAID1, 2x 3Ge Xeons de um só núcleo (barramento de 800Mhz com cache de 2MB L2) e 6x 1GB de RAM PC2-3200 400Mhz. Eu gostaria de usar isso, mas não tenho experiência com o HAProxy e o Pound, então não posso dizer se isso será adequado ou não. Eu suponho que 6GBs de RAM é muito olhando para especificações de balanceador de carga de hardware. O que os outros pensam sobre o CPU e os HDDs?

Este não é um segmento de compras, portanto, não poste modelos de servidor que sejam adequados. Em vez disso, o que eu gostaria se isso não estivesse à altura da tarefa, é voltar para a consulta (1) para que eu possa construir algo mais que seja suficiente. Tenho muita experiência com implantações de servidores, mas não com esses dois pacotes.

Obrigado.

    
por jwbensley 11.09.2012 / 18:59

1 resposta

6

HAProxy e SSL:
O suporte SSL diretamente no HAProxy é muito recente (ainda no Dev, tornado público há cerca de uma semana), portanto, dependendo da sua linha do tempo, você precisará de algo como stunnel ou nginx para descarregar o SSL. Se não se importar de tentar algo novo, aqui está um howto .

TPS, simultaneidade e taxa de transferência :
O principal fator aqui provavelmente será transações por segundo (TPS). Então, para prever sua carga, você precisará obter esse número de alguma forma. Muito provavelmente você desejará analisar seus registros da web. Concorrência será realmente uma função de quanto tempo você mantém as sessões abertas. Se você mantê-los abertos por um tempo, a resposta pode parecer mais rápida porque você não precisa continuar refazendo a criação de sessões (é demorado e caro quando se trata de SSL). No entanto, você não quer manter as coisas abertas por tanto tempo que você usa um monte de memória.

Estimando a capacidade com o HAProxy:
Quando se trata de desempenho da memória, a documentação do HAProxy fornece algumas orientações:

Also, keep in mind that a connection contains two buffers of 8kB each, as well as some other data resulting in about 17 kB of RAM being consumed per established connection. That means that a medium system equipped with 1GB of RAM can withstand around 40000-50000 concurrent connections if properly tuned.

Com SSL, a maior parte do trabalho da CPU ocorrerá durante a fase de handshake, se o que você está usando para processar SSL puder armazenar em cache as chaves geradas, você poderá economizar bastante CPU. Consulte este artigo para obter mais detalhes sobre isso.

Você também pode usar esta pessoa de referência para ter uma ideia como linha de base também.

Você precisa fazer um benchmark para ter certeza:
No final, você terá que fazer um benchmark para ter certeza, aqui é uma referência para você começar. Minha impressão pessoal é de que, a 4 Mbps, você provavelmente ficará bem.

    
por 11.09.2012 / 19:32