Diminuição da velocidade de upload de EC2 para S3 com aumento de instâncias

1

Eu tenho um trabalho que obtém dados de um banco de dados, executa algum código e carrega o resultado em um bucket do S3. O código leva aproximadamente 1 minuto para ser executado e o arquivo de resultado é de aproximadamente 10 MB. Ambas as instâncias do EC2 e o bucket do S3 estão em us-west-1.

Eu executo instâncias separadas deste trabalho em várias instâncias do EC2 m3.large de uma só vez. Com até cerca de 175 instâncias, o upload demora menos de um segundo. Não são muitos pedidos simultâneos; talvez até 5 / segundo. Pouco depois de aumentá-lo para 200 instâncias, o upload leva de 40 a 60 segundos e, às vezes, até mais.

Parece que isso não deve ser uma quantidade incomum de dados para enviar para o S3, e as máquinas individuais parecem estar indo bem (CPU 40-50%). O que poderia estar causando isso? Eu poderia estar atingindo um limite de largura de banda de rede? Se sim, como posso saber?

Os arquivos foram nomeados com um id único, então eu tentei inverter o id para espalhar as chaves (como descrito link ). Isso não mudou o comportamento.

    
por kielni 07.05.2015 / 16:41

1 resposta

1

Você provavelmente está encontrando um gargalo na instância do NAT. Conduzir 200 servidores no valor de grandes solicitações HTTP através de um servidor provavelmente está sobrecarregando-o demais (seja CPU ou largura de banda de rede). Divida seus servidores em várias sub-redes com várias instâncias NAT ou coloque-os em uma sub-rede pública com rede direta para o S3, em vez de um NAT.

    
por 07.05.2015 / 17:34