随着时间的推移,上传到 S3 存储桶会变慢

use*_*747 1 python amazon-web-services aws-cli

我正在将大约 200,000 个文件(每个最大约 1MB)从 EC2 实例(均位于欧洲西部)上传到 S3 存储桶。

从使用 CloudWatch 监控 EC2(查看NetworkOut指标)来看,随着时间的推移,上传传输似乎有所下降:

在此处输入图片说明

我分几批上传文件,下载似乎是一致的,通常在四五个小时后(但有时发生得更快)。

这些文件使用 Python 脚本上传,其中:

  1. 从第三方服务器下载 .zip
  2. 从 .zip 中提取大约 25 个文件并对每个文件进行 gzip
  3. 将 .gzip 文件上传到存储桶

我尝试了两种上传 .gzip 文件的方法......

  • 依次使用 boto3: boto3.client("s3").upload_file(file.gz, bucket, file.gz)
  • 将 AWS CLI 作为子进程运行以一次上传 25 个 .gzip 文件

...但我看到每种方法都有相同的下降。

什么可能导致这种情况?或者我应该收集什么信息来调试它?

编辑

这是同一时期的图表,显示了BurstBalance指标(EC2 实例是 t2.small):

在此处输入图片说明

这是CPUCreditBalance

在此处输入图片说明

Tim*_*Tim 6

我最好的猜测是这是您的EBS I/O 积分。使用BurstBalance CloudWatch 指标对此进行监控。请检查,张贴图表,如果不是,我会再想一些。

更新- 我要求您添加的第三张图表明您的 CPU 积分已用完。您的 CPU 受到限制。您可以接受较慢的性能或暂时更改为更合适的实例。

这看起来非常占用 CPU。您可以移动到 t2 大并获得四倍的 CPU 配额,或者我可能会暂时移动到通用 m4 实例。更改实例类型很容易 - 停止实例,右键单击,更改实例类型,然后再次启动它。