Teste de desempenho LAMP-Cluster - Como encontrar o gargalo?

Teste de desempenho LAMP-Cluster - Como encontrar o gargalo?

Eu configurei um cluster de 3 nós executando um aplicativo LAMP com HAProxy fazendo o balanceamento de carga. Agora gostaria de otimizar e testar a carga do sistema. Portanto, estou usando o jmeter-ec2, que gira 15 instâncias AWS-t1.micro da região da Irlanda, executando um teste jmeter no cluster localizado em um data center dedicado na Alemanha.

O problema é que os servidores dificilmente suportam carga de 0,5, enquanto o jmeter relata apenas cerca de 70 tps. Agora estou me perguntando onde está o gargalo e por que o sistema não atende mais tps.

Estou procurando ajuda sobre como abordar esse problema para ajustar um serviço após o outro. Há MySQL Galera, Apache, NginX e Solr em execução para servir o aplicativo, todos com configurações padrão. O cluster consiste em 3 novos nós metálicos simples com 32 GB de RAM e CPUs quad XEON interconectadas via LAN gigabit.

Agradecemos antecipadamente por qualquer contribuição útil sobre como ajustar/configurar sistematicamente o sistema.

Responder1

Tente remover partes do sistema para encontrar o gargalo da garrafa. 15 servidores de teste parecem muito! você deve conseguir obter milhares de TPS em uma única unidade de teste. Você não está pedindo ao HAProxy para esperar por uma resposta, está? ou seja, utilizando a funcionalidade maxconns e a funcionalidade de enfileiramento? Como eu disse, tente simplificar, mas se você acha que é HAProxy, poste a configuração.

Responder2

Acho que os clientes de teste são obviamente um problema para mim.

  1. Você está usando t1.micro. Eles são basicamente gratuitos e gratuitos por um motivo. Passe a usar pelo menos m3.medium, large ou xlarge para teste. Você pode desligá-los quando terminar.

Comentários da documentação da AmazonMicroinstâncias T1resume bem.

"Desempenho pontiagudo",

"Projetado para suportar 10 solicitações por minuto"

Mas, para uma referência, você deseja tentar sobrecarregar seu servidor. Você deseja centenas de solicitações por segundo. Isso é um pouco mais do que isso pode fornecer.

  1. O cluster de teste não é local para o cliente de teste, o que introduz latência extra. Seu cluster está a 1.600 km de distância, em outro país. Isso também não vai ajudar. Portanto, certifique-se de observar o ponto 3.

  2. Certifique-se de que seus clientes de teste estejam executando multithread.

  3. Use EU (Irlanda) - eu-west-1 que é a melhor escolha para testar o endpoint.

informação relacionada