Amazon-Web-Services

隨著時間的推移,上傳到 S3 儲存桶會變慢

  • January 11, 2017

我正在將大約 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

在此處輸入圖像描述

我最好的猜測是您的EBS I/O 積分。使用BurstBalance CloudWatch 指標對此進行監控。請檢查,發布圖表,如果不是,我會再想一些。

更新- 我要求您添加的第三張圖表顯示您已用完 CPU 積分。您的 CPU 受到限制。您可以接受較慢的性能或暫時更改為更合適的實例。

這看起來相當 CPU 密集型。您可以遷移到 t2 大並獲得四倍的 CPU 限額,或者我可能會遷移到通用 m4 實例一段時間。更改實例類型很容易 - 停止實例,右鍵點擊,更改實例類型,然後重新啟動。

引用自:https://serverfault.com/questions/825711