Desempenho ruim do balanceador de carga em rackspace e centos

7

Estou testando diferentes opções de carga para balanceamento de carga e estou obtendo resultados insatisfatórios de Nginx, haproxy e verniz. Eu tenho um balanceador de carga de 4GB na Rackspace, atingindo servidores de aplicativos de 4x1GB.

Estou atingindo uma URL chamada "/ slow", que aguarda deliberadamente 500 ms antes de responder. Se eu acertar um servidor de aplicativos diretamente, ele poderá lidar com uma taxa de conexão de 1600 a 1800 por segundo.

Se eu acertar o balanceador de carga Nginx, ele só poderá manipular cerca de 2000 conexões. Eu estava esperando por algo mais próximo de 4x1600 = 6000. Abaixo está o comando que estou usando para testá-lo. Isso é executado em paralelo em 40 instâncias de 256 MB. Estou deliberadamente definindo num_call como 1, porque quero ver o desempenho da conexão. Mais alto que isso e começo a receber muitos erros.

httperf --server 50.56.80.227 --port 1555 --uri /slow --rate 50 --num-call 1 --num-conn 100 --timeout 5

Aqui está minha configuração do nginx: link

Então, aqui está a coisa estranha, não importa se eu uso nginx, haproxy ou verniz, eu recebo os mesmos resultados. No entanto, testei os novos balanceadores de nuvem da Rackspace e eles obtêm um desempenho muito melhor (indo muito bem em 7000 / s). Já que o nginx e os outros estão todos rodando em uma instância que eu configurei, e o balanceador de rackspace não está, eu estou supondo que há algo sobre o sistema que está errado. Eu prefiro usar um balanceador que eu controle, para que eu possa adicionar cache, gzip, ssl e outras coisas a ele.

Como posso descobrir qual é o gargalo? Há algo que eu deveria ajustar no sistema para melhorar o desempenho? Preciso de mais de 4 GB de RAM? (O uso de RAM não é alto durante o teste). Alguma outra ideia aleatória?

Atualização: Eu apenas redimensionei o balanceador para 8 GB e ele está tendo um desempenho muito melhor, até 6000-7000, ou comparável aos balanceadores de espaço de racks. Isso não faz sentido, porque não estava ficando sem RAM antes.

Atualização: Aqui está um exemplo de saída de httperf quando eu sobrecarrego o balanceador (na versão de 8GB, mais alto do que eu pude ir antes, mas os erros são semelhantes): link

    
por Sean Clark Hess 19.10.2011 / 22:09

1 resposta

4

Eu também estou no Rackspace Cloud e tenho um problema muito parecido. Eu acredito que o problema é este:

Perguntas frequentes sobre o servidor em nuvem da Rackspace

Parece que o que você está descrevendo está maximizando as quantias lamentáveis de bandwith rackspace nos dá, quase inteiramente fazendo todos os incríveis ganhos de desempenho que coisas como o Varnish / Nginx fornecem.

Para confirmar, volte a executar alguns dos seus benchmarks com iftop open, e veja-o totalmente limitado aos valores que rackspace fornece em cada tamanho de servidor.

    
por 25.10.2011 / 19:32