O upload para o bucket do S3 diminui com o tempo

1

Estou no meio do upload de cerca de 200.000 arquivos (cada um tem ~ 1 MB no máximo) para um intervalo S3 de uma instância do EC2 (ambos na Europa Ocidental).

A partir do monitoramento do EC2 com o CloudWatch (observando a NetworkOut métrica), parece haver um declínio na transferência de upload ao longo do tempo:

Estoufazendoouploaddosarquivosemváriasparcelaseodrop-offparececonsistente,geralmentedepoisdequatrooucincohoras(masàsvezesocorremaisrapidamente).

OsarquivossãoenviadoscomumscriptPython,que:

  1. Fazodownloaddeum.zipdeumservidordeterceiros
  2. Extraicercade25arquivosdo.zipegzipsdecadaarquivo
  3. Fazouploaddosarquivos.gzipparaointervalo

Eutenteiduasmaneirasdefazerouploaddosarquivos.gzip...

  • Sequencialmente,usandoboto3:boto3.client("s3").upload_file(file.gz, bucket, file.gz)
  • Executando o AWS CLI como um subprocesso para fazer upload de 25 arquivos .gzip por vez

... Mas eu vi o mesmo drop-off com cada método.

O que poderia estar causando isso? Ou que informações devo coletar para depurá-lo?

Editar

Aqui está um gráfico para o mesmo período, mostrando a BurstBalance métrica (a instância do EC2 é um t2.small):

AquiestáoCPUCreditBalance:

    
por user2950747 11.01.2017 / 23:25

1 resposta

5

Meu palpite é que é o seu créditos de E / S do EBS . Monitore isso com a métrica BurstBalance CloudWatch. Por favor, cheque, poste um gráfico, e se não é que eu vou pensar um pouco mais.

Atualização - esse terceiro gráfico que pedi para você adicionar mostra que você ficou sem créditos da CPU. Sua CPU está sendo estrangulada. Você pode aceitar o desempenho mais lento ou mudar temporariamente para uma instância mais adequada.

Isso parece bastante intensivo da CPU. Você poderia mover para um t2 grande e obter quatro vezes a capacidade da CPU, ou eu provavelmente mudaria para uma instância m4 de uso geral por um tempo. Alterar o tipo de instância é fácil: interrompa a instância, clique com o botão direito do mouse, altere o tipo de instância e, em seguida, inicie-a novamente.

    
por 11.01.2017 / 23:30