2017-10-17 58 views
0

我有一項服務,每秒向S3發送10k個PUT請求。 S3能夠處理這些負載幾分鐘,但之後開始拋出SlowDown異常。它使我的服務速度降到了不可接受的速度。S3 SlowDown:請降低您的請求率例外

我已閱讀this並實施了建議的最佳做法。以下是前綴的格式:bucket-name/[First four of UUID]-[YYYYmmddhhiiss]/[random UUID]/[random UUID].json。該方法雖然沒有工作。

任何想法如何克服這個錯誤?謝謝! P.S:我已經向AWS支持中心要求增加PUT限制。他們建議上述步驟無效。

+0

10K PUT請求每秒,持續,將花費〜$ 129,600.00 /月......那麼,什麼是你的使用情況進行如此大量的流量? –

+0

@ michael-sqlbot工作流很簡單。每個請求都會創建對S3的PUT請求。每秒請求數量將在10k左右。我們將轉移到批處理系統,以便減少PUT請求。 –

+0

您每秒能成功製作多少個請求?這個過程持續多久?它顯然不運行24×7×365,這是「*每秒*」所暗示的。 –

回答

0

S3是分佈式的,您需要確保不要創建熱點。您可以通過確保您的對象密鑰真正是隨機的來避免這種情況。

因此,將[randome UUID]移動到對象鍵的第一部分。如果您沒有生成真正隨機的UUID,(也就是說,聽起來可能是每個對象的前4個字符相似),請嘗試顛倒UUID。

更多提示可以發現here

+0

它仍然無法正常工作。我將通過使用批處理系統來減少S3 Put請求。感謝您的鏈接,這是非常有用的。 –

+0

如果你突發到10k請求/秒,也許看着把這個負載推入隊列(SQS),然後通過處理節點分配負載。 – chris

+0

這將解決問題!但不幸的是,將另一個組件添加到工作流中不是一種選擇。 –