Instâncias lentas quando conectadas ao balanceador de carga da AWS

3

Eu configurei 5 t1.micro do EC2 por trás de um balanceador de carga da AWS.

Todos os casos ficam mais lentos quando são conectados ao LB. Oito em cada 10 solicitações leva mais de 30s, mesmo quando eu faço as solicitações diretamente para as instâncias (ignorando LB). A carga da CPU das instâncias não parece ser o problema. Quando eu removo uma das instâncias da LB, ela responde muito bem. Assim que é adicionado de volta ao LB, os pedidos diminuem a velocidade novamente.

Alguém pode me dar algumas pistas de por que as instâncias respondem muito mais devagar quando o LB é ligado?

Obrigado antecipadamente

    
por quintencls 25.05.2014 / 21:11

1 resposta

4

Parece que os pedidos estão sendo enfileirados em seus ELBs devido a (talvez) cabeçalhos Keep-Alive longos. Os ELBs tentarão minimizar o número de conexões com o backend, honrando o cabeçalho Keep-Alive.

Curto (ou desativado) keep-alive forçará o ELB a abrir uma única conexão por solicitação para seu back-end, caso seus nós de back-end tenham recursos livres para lidar com essa conexão de entrada. Long keep-alives reduzirão as conexões de back-end e imporão os ELBs para serializar solicitações o máximo possível, o que pode resultar em solicitações aguardando o processamento de outras solicitações.

Confira suas filas ELB no Cloudwatch durante os testes de carga e, se elas crescerem enquanto seus back-ends estão inativos, tente diminuir o número de solicitações por conexão e reduzir os tempos limite de Keep-Alive. Os valores exatos irão variar dependendo dos requisitos da sua aplicação.

PS: t1.micro é o mal PS (2): Stickyness é malvado

    
por 27.05.2014 / 18:41